mapcar的多个参数

时间:2011-05-11 05:27:30

标签: functional-programming lisp closures common-lisp

我确信这在lisp中是一个非常初学的问题,因为我只是在学习语言。

我在clisp中有一个名为count的函数。它计算给定原子在列表中出现的次数。我想做的是能够使用不同的参数多次调用count,但是要搜索相同的列表。

例如,我想假设列表中'A'B'C的数量。我希望我能做到这样的事情:

(mapcar 'count '(A B C) myList)

我发现这不起作用,因为'(A B C)中的每个元素都只与myList中的一个元素配对。将具有附加输入参数的函数应用于列表中的每个项目的适当惯用方法是什么?

为了进一步澄清,我希望能够将'(A B C)'(A A B C C C)作为输入并生成(2 1 3)

1 个答案:

答案 0 :(得分:13)

要对列表count中的每个项重复调用函数(A B C),每次计算匹配项时都会使用相同的序列mylist

(mapcar (lambda (x) (count x mylist)) '(A B C))