mapcar 的多个参数
我确信这是 lisp 中的一个非常初级的问题,因为我刚刚学习这门语言。
我在 clisp 中有一个名为 count 的函数。它计算给定原子在列表中出现的次数。我想做的是能够使用不同的参数多次调用 count,但要搜索相同的列表。
例如,假设我想计算列表中 'A
、'B
和 'C
的数量。我希望我可以做这样的事情:
(mapcar 'count '(A B C) myList)
我发现这不起作用,因为 '(ABC)
中的每个元素都只与 myList 中的一个元素配对。将具有附加输入参数的函数应用于列表中的每个项目的适当惯用方法是什么?
为了进一步澄清,我希望能够将 '(ABC)
和 '(AABCCC)
作为输入并生成 (2 1 3).
I'm sure this is a very beginner question in lisp, as I am just learning the language.
I have a function in clisp called count. It counts the number of times a given atom appears in a list. What I'd like to do is be able to call count multiple times with different parameters, but the same list to search.
For example, I'd like to count the number of 'A
, 'B
, and 'C
in the list, hypothetically. I was hoping I could do something like this:
(mapcar 'count '(A B C) myList)
I've figured out that this doesn't work because each of the elements in '(A B C)
are being paired up with only one of the elements in myList. What is the appropriate idiomatic way to apply a function with an additional input parameter to each item in a list?
To further clarify, I'd like to be able to take '(A B C)
and '(A A B C C C)
as input and produce (2 1 3)
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要对列表
(ABC)
中的每个项目重复调用函数count
,每次对相同序列mylist
的匹配项目进行计数:To call the function
count
repeatedly with each item from a list(A B C)
, every time counting matching items the same sequencemylist
: