我正在使用R5RS(球拍).这是我的例子
(map (lambda (x) (list (apply + x) (apply * x))) '((1 2 3) (4 5 6)))
-> ((6 6) (15 120))
Run Code Online (Sandbox Code Playgroud)
我只是想知道如果有这样的内置函数
(map-apply '(+ *) '((1 2 3) (4 5 6)))
Run Code Online (Sandbox Code Playgroud)
这可能会产生相同的结果.
什么都没有内置,但你可以写自己的:
(define (map-apply funcs items)
(map (lambda (item)
(map (lambda (func)
(apply func item))
funcs))
items))
Run Code Online (Sandbox Code Playgroud)
你必须传递(list + *)
,没有'(+ *)
,但是.