我试图让函数从列表中的结构中获取一个数字。当列表为空时,函数应输出+ inf.0。
然而,当我输入这样的空列表:( function(list empty))时,忽略+ inf.0部分并执行else表达式,导致struct-xyz获取空列表或首先不允许空列表。我做错了什么?
(define (function datalist))
(cond
[(empty? datalist) +inf.0]
[else(struct-xyz (first datalist))]))
这一切都在初学者教学语言中。
答案 0 :(得分:1)
您应该致电(function empty)
,而不是(function (list empty))
。 (function (list empty))
在不为空的列表上调用您的函数,它包含一个元素(另一个列表,为空)。