空?不会阻止Racket运行表达式

时间:2017-11-09 13:35:13

标签: racket conditional-statements empty-list

我试图让函数从列表中的结构中获取一个数字。当列表为空时,函数应输出+ inf.0。

然而,当我输入这样的空列表:( function(list empty))时,忽略+ inf.0部分并执行else表达式,导致struct-xyz获取空列表或首先不允许空列表。我做错了什么?

(define (function datalist)) 
(cond 
 [(empty? datalist) +inf.0]
 [else(struct-xyz (first datalist))]))

这一切都在初学者教学语言中。

1 个答案:

答案 0 :(得分:1)

您应该致电(function empty),而不是(function (list empty))(function (list empty))为空的列表上调用您的函数,它包含一个元素(另一个列表,为空)。