我是Scheme的新手,我正在慢慢找到解决方法。
我对程序和地图有些怀疑,我希望可以回答。
(map plus1 (list 1 2 3 4))
基本上会把结果归还给我:
(2 3 4 5)
如果过程将列表作为唯一参数,则可以。我的问题是我如何能够使用像Map这样的过程来获取2个参数?
(define plus(m list)
(+ m list))
提前感谢您的帮助和建议。
答案 0 :(得分:2)
也许是这样的?
(define (plus m n) (+ m n))
(map plus (list 1 2 3) (list 4 5 6))
; => (list 5 7 9)
答案 1 :(得分:1)
(define (plus m xs)
(map (lambda (x) (+ m x)) xs))
或
(define (adder m)
(lambda (x) (+ m x)))
(define plus (m xs)
(map (adder m) xs))
允许您将adder
函数重用于其他内容。
答案 2 :(得分:0)
使用两个列表。看看会发生什么:
guile> (map (lambda (x y) (+ x y)) '(1 2 3) '(4 5 6))
(5 7 9)