List 不是预期的类型“REAL';通用LISP(CL)

List 不是预期的类型“REAL';通用LISP(CL),list,lisp,List,Lisp,我制作了这个函数,我想让它像这样打印: (defun my-range (list-of-numbers) (let* ((largest (max list-of-numbers)) (msmallest (min list-of-numbers)) (ssmallest (min (remove (min list-of-numbers) list-of-numbers))) (range (- msmallest ssmallest)))

我制作了这个函数,我想让它像这样打印:

(defun my-range (list-of-numbers)
 (let* ((largest (max list-of-numbers))
        (msmallest (min list-of-numbers))
        (ssmallest (min (remove (min list-of-numbers) list-of-numbers)))
        (range (- msmallest ssmallest)))
  (list range largest))) 
(范围(07823-1))

(-18)

;;打印“列表中最小数字和第二小数字之间的范围”和“最大数字”

所以我编写了如下代码:

(defun my-range (list-of-numbers)
 (let* ((largest (max list-of-numbers))
        (msmallest (min list-of-numbers))
        (ssmallest (min (remove (min list-of-numbers) list-of-numbers)))
        (range (- msmallest ssmallest)))
  (list range largest))) 
我输入函数和数字,如调试窗口上的示例:

(我的射程’(07823-1))

错误:
(0 7 8 2 3-1)“不是预期的类型
REAL”

[条件类型:类型错误]

错误消息已打印在窗口中。。。 “不属于预期类型”REAL“的含义是什么? 我怎样才能解决这个问题?你能告诉我我的代码有哪些问题吗


我需要你的帮助

什么是Min和Max的期望?还考虑是否有更好的方法来做这个(你遍历该列表多少次?你复制了多少次?)Rainer Joswig的论点是“数字列表”。“。幸运的是,我找到了问题发生的原因。@tfb那么使用'DOLIST'来解决这个问题是否更好?
(减少#'最大数字列表)