【发布时间】:2018-03-18 23:51:19
【问题描述】:
我试图在函数(consToAll A L) 中接收一个参数 A 和一个列表 L,并将该参数添加到该列表的每个子列表中。
最好的方法是什么?
这是所需的输出:
如果 L 是 ( (1) (2) (3) )
然后(consToAll 'a L)
返回:
( (a 1) (a 2) (a 3) ).
【问题讨论】:
标签: functional-programming scheme
我试图在函数(consToAll A L) 中接收一个参数 A 和一个列表 L,并将该参数添加到该列表的每个子列表中。
最好的方法是什么?
这是所需的输出:
如果 L 是 ( (1) (2) (3) )
然后(consToAll 'a L)
返回:
( (a 1) (a 2) (a 3) ).
【问题讨论】:
标签: functional-programming scheme
将 'a 视为变量 var
回答了类似的问题here
将 f 替换为 var 并将函数调用 (f (...)) 替换为 (cons var (car L))
【讨论】:
R5RS/R6RS/R7RS 有一个内置的“映射”程序,它将映射到您的列表 L。最简单的方法是使用它将 A 加入每个子列表。
编辑:顺便提一下,你的 consToAll 过程不会像你想象的那样返回'( (a 1) (a 2) (a 3) ),它是一个字面常量,但会返回一个列表列表( (a 1) (a 2) (a 3) )。见What is the difference between quote and list?。
【讨论】: