mapcar的多个参数

Ale*_*ard 9 lisp closures functional-programming common-lisp

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

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

例如,我想算的次数'A,'B以及'C在列表中,假设.我希望我能做到这样的事情:

(mapcar 'count '(A B C) myList)
Run Code Online (Sandbox Code Playgroud)

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

为了进一步澄清,我希望能采取'(A B C)'(A A B C C C)输入而产生(2 1 3).

Ter*_*aug 13

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

(mapcar (lambda (x) (count x mylist)) '(A B C))
Run Code Online (Sandbox Code Playgroud)

  • 那是完美的.正是我在寻找什么.非常感谢你!现在阅读这篇文章,我看到我可能在没有真正理解lambda函数正在做什么的情况下看了十几个类似的解决方案.既然我看到答案适用于我的具体问题,那就更有意义了. (3认同)