scheme - 有什么方法可以在 Scheme/Racket 中映射具有多个参数的函数?
问题描述
我目前正在学习 Racket/Scheme 的入门课程,目前正在学习 map、apply 和 fold。在大多数情况下,我一直假设 map 只能在接受单个参数的 lambda 上工作。但是,对于某些问题,我会发现在某种程度上解决这个问题非常有用 - 例如,拥有一个可以映射到列表的函数,同时还带有一个累加器,该累加器为每个递归函数调用独立更新。虽然我不能比这更具体,因为害怕违反荣誉守则,如果你打算使用地图,有没有办法解决无法给每个递归调用一个累加器的问题?
解决方案
map
takes as many lists as you want:
(map + '(1 2 3) '(3 2 1) '(3 3 3)) ; ==> (7 7 7)
fold
has an accumulator:
(foldl (lambda (a b c acc) (+ a b c acc)) 1 '(1 2 3) '(3 2 1) '(3 3 3)) ; ==> 22
推荐阅读
- java - Spring Boot中的SseEmitter(有条件切换到其他程序)
- reactjs - 使用 withAuthenticationRequired 时组件定义缺少显示名称
- sdk - 我试图编译 Media Player Classic,他们说我需要 SDK 8
- go - 检查输入是 JSON 还是 YAML 的稳健方法
- c++ - 如何导出模板功能?
- in-app-purchase - 应用购买插件中的购买ID是什么
- walmart-api - 获取请求在邮递员中多次工作,但在多次后在高温计/curl/nodejs中被阻止
- ios - SwiftUI Firebase - 在 Firebase 中添加或减去整数
- file-permissions - 上传文件夹中存在图像时,如何解决多站点网络中子站点网页中未显示的图像
- windows - 搜索文件名子字符串,并根据搜索模式将匹配项移动到某个位置