我有一个关于尝试在Racket中定义一个递归定义的foldl函数的问题。
以下是我的方法:
(define foldl
(lambda (z c xs)
(match xs
(empty z)
((make-pair x xs) (foldl c (c z x) xs)))))不幸的是,当我这样做时,我得到了错误:
expected a function after the open parenthesis but received 1我不太明白为什么会弹出这条消息。有人能帮我吗?
发布于 2021-01-15 03:43:42
您看到的错误用于将参数交换为foldl。
你的定义是:
(define foldl
(lambda (z c xs)在这里,z是一个元素,c是一个构造函数。在……里面
(foldl c (c z x) xs)))))您交换了前两个参数。
注意:您需要更改match模式。
将empty更改为'()。将make-pair更改为cons。
https://stackoverflow.com/questions/65724994
复制相似问题