我确定这是 lisp 中的一个非常初学者的问题,因为我只是在学习这门语言。
我在 clisp 中有一个名为 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 )
。
最佳答案
对列表 (A B C)
中的每个项目重复调用函数 count
,每次计算匹配项目的相同序列 mylist
:
(mapcar (lambda (x) (count x mylist)) '(A B C))
关于functional-programming - mapcar 的多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959656/