List Scheme:将列表作为参数映射到函数

List Scheme:将列表作为参数映射到函数,list,recursion,functional-programming,scheme,lisp,List,Recursion,Functional Programming,Scheme,Lisp,如果我有一个接受3个参数并返回列表的函数: (some-function 1 2 3) --> '(3 2 1) 我有一个这样的列表: ( (1 2 3) (2 1 3) (3 2 1) ) 如何映射“某个函数”以使用所有列表作为元素 谢谢。如果列表只嵌套了一次,那么可以使用折叠和附加将它们转换为一个列表,并使用应用调用一些函数 (fold append '() '((1 2 3) (2 1 3) (3 2 1))) => (2 3 1 3 2 1 1 2 3) (apply s

如果我有一个接受3个参数并返回列表的函数:

(some-function 1 2 3) --> '(3 2 1)
我有一个这样的列表:

( (1 2 3) (2 1 3) (3 2 1) )
如何映射“某个函数”以使用所有列表作为元素


谢谢。

如果列表只嵌套了一次,那么可以使用
折叠
附加
将它们转换为一个列表,并使用
应用
调用
一些函数

(fold append '() '((1 2 3) (2 1 3) (3 2 1))) => (2 3 1 3 2 1 1 2 3)
(apply some-function (2 3 1 3 2 1 1 2 3))
否则,您可以将
apply
some函数
包装在传递给
map

(map (lambda (x) (apply some-function x)) '((1 2 3) (2 1 3) (3 2 1)))

如果列表只嵌套一次,则可以使用
fold
append
将它们转换为一个列表,并使用
apply
对结果调用
some函数
,即

(fold append '() '((1 2 3) (2 1 3) (3 2 1))) => (2 3 1 3 2 1 1 2 3)
(apply some-function (2 3 1 3 2 1 1 2 3))
否则,您可以将
apply
some函数
包装在传递给
map

(map (lambda (x) (apply some-function x)) '((1 2 3) (2 1 3) (3 2 1)))

我不知道你的意思是什么

(define (rev-list a b c)
  (list c b a))

(rev-list 1 2 3)
⇒ (3 2 1)

(apply rev-list '((1 2 3) (2 1 3) (3 2 1)))
⇒ ((3 2 1) (2 1 3) (1 2 3))

(map (lambda (l) (apply rev-list l)) '((1 2 3) (2 1 3) (3 2 1)))
⇒ ((3 2 1) (3 1 2) (1 2 3))

我不知道你的意思是什么

(define (rev-list a b c)
  (list c b a))

(rev-list 1 2 3)
⇒ (3 2 1)

(apply rev-list '((1 2 3) (2 1 3) (3 2 1)))
⇒ ((3 2 1) (2 1 3) (1 2 3))

(map (lambda (l) (apply rev-list l)) '((1 2 3) (2 1 3) (3 2 1)))
⇒ ((3 2 1) (3 1 2) (1 2 3))

对不起,我不熟悉这种语言。我试图使用map函数,但不知道apply函数的存在。谢谢你的回答,这很有帮助!对不起,我不熟悉这种语言。我试图使用map函数,但不知道apply函数的存在。谢谢你的回答,这很有帮助!对不起,我不熟悉这种语言。我试图使用map函数,但不知道apply函数的存在。谢谢你的回答,这很有帮助!对不起,我不熟悉这种语言。我试图使用map函数,但不知道apply函数的存在。谢谢你的回答,这很有帮助!