如何为列表列表中的每个列表提供参数?

时间:2017-03-09 14:23:59

标签: functional-programming scheme

我试图在函数(consToAll A L)中接受参数A和列表L,并将参数纳入该列表的每个子列表中。

解决这个问题的最佳方式是什么?

这是所需的输出:

如果L是( (1) (2) (3) ) 然后(consToAll 'a L) 返回:

( (a 1) (a 2) (a 3) )

2 个答案:

答案 0 :(得分:0)

将'a视为变量var 回答了类似的问题here

使用(f (...))

将变量和函数调用(cons var (car L))替换为f

答案 1 :(得分:0)

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?