空的?不会从 运行 表达式停止球拍
empty? does not stop Racket from running expression
我正在尝试让函数从列表中的结构中获取数字。当列表为空时,函数应输出+inf.0。
但是,当我输入这样一个空列表时:(function (list empty)),+inf.0 部分被忽略,else 表达式仍然执行,导致 struct-xyz 为空的错误列表或第一个不允许空列表。我做错了什么?
(define (function datalist))
(cond
[(empty? datalist) +inf.0]
[else(struct-xyz (first datalist))]))
以上都是初级教学语言。
你应该打电话给 (function empty)
,而不是 (function (list empty))
。 (function (list empty))
正在 不是 空的列表上调用您的函数,它包含一个元素(另一个列表,它是空的)。
我正在尝试让函数从列表中的结构中获取数字。当列表为空时,函数应输出+inf.0。
但是,当我输入这样一个空列表时:(function (list empty)),+inf.0 部分被忽略,else 表达式仍然执行,导致 struct-xyz 为空的错误列表或第一个不允许空列表。我做错了什么?
(define (function datalist))
(cond
[(empty? datalist) +inf.0]
[else(struct-xyz (first datalist))]))
以上都是初级教学语言。
你应该打电话给 (function empty)
,而不是 (function (list empty))
。 (function (list empty))
正在 不是 空的列表上调用您的函数,它包含一个元素(另一个列表,它是空的)。