racket - 在球拍中向左折叠
问题描述
我有一个关于尝试在 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
我无法弄清楚为什么会弹出此消息。有人能帮我吗?
解决方案
您看到的错误用于将参数交换为foldl
.
你的定义是:
(define foldl
(lambda (z c xs)
这z
是一个元素 ac
是一个构造函数。在
(foldl c (c z x) xs)))))
你交换了前两个参数。
注意:您需要更改match
模式。
更改 empty
为'()
。更改 make-pair
为cons
。
推荐阅读
- javascript - 如何在Vue中特定组件的范围内定义`setInterval`?
- javascript - 更新使用 append() 方法和 ajax 请求
- python - 如何合并两个 .dat 文件?
- cassandra - 具有一致性级别和复制因子的 Cassandra 如何处理 CAP 定理?
- python - 使用 Python msvcrt 时出现代码问题
- python - 我试图构建一个包含孟加拉语的 doc 文件,但保存的 docx 文件在 python docx 库中没有显示任何字符
- javascript - 显示函数产生的组件,在屏幕上替换之前的组件
- php - Base64转换为pdf文件:如何让它只显示pdf的第一页?可能吗?
- spring-security - 带有集中式数据库的 spring apac
- typescript - 如何缩小可能的类型?