在这样的方案中编写应用于列表的函数是否有更短的方法?

Han*_*Sun 1 lisp scheme

我正在使用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)

这可能会产生相同的结果.

Chr*_*ung 6

什么都没有内置,但你可以写自己的:

(define (map-apply funcs items)
  (map (lambda (item)
         (map (lambda (func)
                (apply func item))
              funcs))
       items))
Run Code Online (Sandbox Code Playgroud)

你必须传递(list + *),没有'(+ *),但是.