公共Lisp编程
我不熟悉lisp语言。才三天。 我有一个作业,我需要帮助写代码 编写一个包含三个参数的Lisp函数:一个名为aList的整数列表、一个名为min的整数和一个名为max的整数。该函数返回aList中位于min范围内的元素数公共Lisp编程,lisp,Lisp,我不熟悉lisp语言。才三天。 我有一个作业,我需要帮助写代码 编写一个包含三个参数的Lisp函数:一个名为aList的整数列表、一个名为min的整数和一个名为max的整数。该函数返回aList中位于min范围内的元素数 安装 在REPL中键入代码,然后再试一次 参考代码来查找列表中的元素数量,这些元素的数量在min范围内,这就是我将如何进行的 (defun countem (aList min max) (apply #'+ (mapcar (lambda (x) (if (<= m
参考代码来查找列表中的元素数量,这些元素的数量在min范围内,这就是我将如何进行的
(defun countem (aList min max)
(apply #'+ (mapcar (lambda (x) (if (<= min x max) 1 0)) aList)))
(定义计数(最小最大值)
(apply#’+(mapcar(lambda(x)(如果(您指的是x
和y
),但它们根本不存在。您只是从其他地方复制粘贴函数体吗?您的意思是什么?不是这样做的?@user3571154尝试(+1)
在您的REPL中。什么是REPL?它返回最小值和最大值之间的整数吗?@user3571154我打赌您在课程中讨论的最新内容之一是使用car
(或first
)和cdr
(或rest
)和列表递归来分解列表。这将是一个很好的起点。(提示:您根本不打算使用cons
)
(defun countem-1 (aList min max)
(let ((count 0))
(dolist (el aList)
(if (and (>= el min) (<= el max))
(setf count (1+ count))))
(print count)))
(defvar count 0)
(defun countem-2 (aList min max)
(if (<= min max)
(progn
(setf count (1+ count))
(countem-2 aList (1+ min) max))
(print count))
(defun countem (aList min max)
(apply #'+ (mapcar (lambda (x) (if (<= min x max) 1 0)) aList)))