编写一个递归LISP函数,该函数查找两个长度相同的数字列表的点积

ng

刚开始学习LISP,我试图弄清楚如何编写以下递归函数。

那我应该

(DOT-PRODUCT '(1 2) '(3 4)))

输出应为11

我写了以下内容

(defun DOT-PRODUCT (a b)
  (if (or (null a) (null b))
      0
      (+ (* (first a) (first b))
         (DOT-PRODUCT (rest a) (rest b)))))

一切似乎都有效;但是,它仍然适用于不同长度的列表。我希望它只处理具有相同长度的数字列表。我应该在哪里添加返回“无效长度”的代码呢?

伦佐

一种简单的方法是重写该函数,以便它使用条件形式检查不同的情况cond

(defun dot-product (a b)
  (cond ((null a) (if (null b) 0 (error "invalid length")))
        ((null b) (error "invalid length"))
        (t (+ (* (first a) (first b))
              (dot-product (rest a) (rest b))))))

在的第一个分支中cond,如果第一个参数为NIL,则第二个参数也必须NIL为,否则会生成错误。在第二个分支中,我们已经知道a不是NIL,因此会立即生成错误。最后,计算结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

编写一个函数,该函数计算并返回被3整除的两个目标数字之间的整数总数

来自分类Dev

编写一个名为shortest()的函数,该函数在字符串列表中查找最短字符串的长度

来自分类Dev

编写一个递归函数,该函数返回具有最长连续序列的数字

来自分类Dev

如何创建一个函数,该函数生成一个整数序列的无限列表,该整数列表用两个初始数字X_0和X_1递归定义

来自分类Dev

我正在尝试编写一个函数,该函数可以采用两个数字数组并按升序排序

来自分类Dev

我正在尝试编写一个函数,该函数可以采用两个数字数组并按升序排序

来自分类Dev

创建一个函数,该函数接受具有相同方法的两个不同对象

来自分类Dev

编写一个函数,该函数可再现与R中的“单独” dplyr函数相同的输出

来自分类Dev

Python-不知道为什么两个列表看起来相同(该函数中的一个正在更新)

来自分类Dev

Lisp随机化并使用两个函数从列表拉入另一个

来自分类Dev

Lisp随机化并使用两个函数从列表拉入另一个

来自分类Dev

尝试编写一个javascript函数,该函数计数到输入的数字

来自分类Dev

尝试从一个函数返回一个数据集,该函数从两个函数打印

来自分类Dev

定义一个名为food的函数,该函数接收两个参数

来自分类Dev

编写一个计算两个数字之比的函数

来自分类Dev

如何编写一个带有两个参数的python函数,一个是列表

来自分类Dev

编写一个函数接受一个两个单词的字符串,如果两个单词在 python 中以相同的字母开头,则返回 True

来自分类Dev

编写一个Scala函数,该函数在调用时返回一个函数

来自分类Dev

查找两个数字中较大的一个的库函数

来自分类Dev

在Postgres中创建一个触发器函数,该函数不允许您有两个具有相同ID的条目

来自分类Dev

编写一个包含两个列表的函数,如果第一个列表与第二个列表中的相同元素相反,则返回True,否则返回False

来自分类Dev

编写一个名为find_mismatch的函数,该函数接受两个字符串作为输入参数

来自分类Dev

两个几乎相同的C ++函数用于完成几乎相同的任务(查找25个数字的行的平均值),但是只有一个函数起作用吗?

来自分类Dev

我可以在一个常用函数中编写两个php函数吗

来自分类Dev

查找一个函数,该函数查找列表中相邻值之间的差,然后针对阈值进行测试

来自分类Dev

创建一个scala函数,该函数生成长度为N的整数的有序列表

来自分类Dev

编写一个自定义求和函数,对一个数字列表求和

来自分类Dev

如何在Python中定义一个递归函数以合并两个排序的列表并以递增的顺序返回一个新列表?

来自分类Dev

写一个返回堆栈的函数,该函数包含小于给定数字的所有元素,并且顺序相同?

Related 相关文章

  1. 1

    编写一个函数,该函数计算并返回被3整除的两个目标数字之间的整数总数

  2. 2

    编写一个名为shortest()的函数,该函数在字符串列表中查找最短字符串的长度

  3. 3

    编写一个递归函数,该函数返回具有最长连续序列的数字

  4. 4

    如何创建一个函数,该函数生成一个整数序列的无限列表,该整数列表用两个初始数字X_0和X_1递归定义

  5. 5

    我正在尝试编写一个函数,该函数可以采用两个数字数组并按升序排序

  6. 6

    我正在尝试编写一个函数,该函数可以采用两个数字数组并按升序排序

  7. 7

    创建一个函数,该函数接受具有相同方法的两个不同对象

  8. 8

    编写一个函数,该函数可再现与R中的“单独” dplyr函数相同的输出

  9. 9

    Python-不知道为什么两个列表看起来相同(该函数中的一个正在更新)

  10. 10

    Lisp随机化并使用两个函数从列表拉入另一个

  11. 11

    Lisp随机化并使用两个函数从列表拉入另一个

  12. 12

    尝试编写一个javascript函数,该函数计数到输入的数字

  13. 13

    尝试从一个函数返回一个数据集,该函数从两个函数打印

  14. 14

    定义一个名为food的函数,该函数接收两个参数

  15. 15

    编写一个计算两个数字之比的函数

  16. 16

    如何编写一个带有两个参数的python函数,一个是列表

  17. 17

    编写一个函数接受一个两个单词的字符串,如果两个单词在 python 中以相同的字母开头,则返回 True

  18. 18

    编写一个Scala函数,该函数在调用时返回一个函数

  19. 19

    查找两个数字中较大的一个的库函数

  20. 20

    在Postgres中创建一个触发器函数,该函数不允许您有两个具有相同ID的条目

  21. 21

    编写一个包含两个列表的函数,如果第一个列表与第二个列表中的相同元素相反,则返回True,否则返回False

  22. 22

    编写一个名为find_mismatch的函数,该函数接受两个字符串作为输入参数

  23. 23

    两个几乎相同的C ++函数用于完成几乎相同的任务(查找25个数字的行的平均值),但是只有一个函数起作用吗?

  24. 24

    我可以在一个常用函数中编写两个php函数吗

  25. 25

    查找一个函数,该函数查找列表中相邻值之间的差,然后针对阈值进行测试

  26. 26

    创建一个scala函数,该函数生成长度为N的整数的有序列表

  27. 27

    编写一个自定义求和函数,对一个数字列表求和

  28. 28

    如何在Python中定义一个递归函数以合并两个排序的列表并以递增的顺序返回一个新列表?

  29. 29

    写一个返回堆栈的函数,该函数包含小于给定数字的所有元素,并且顺序相同?

热门标签

归档