mapcar 的多个参数

发布于 2024-11-06 04:58:55 字数 484 浏览 4 评论 0原文

我确信这是 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独木成林 2024-11-13 04:58:55

要对列表 (ABC) 中的每个项目重复调用函数 count,每次对相同序列 mylist 的匹配项目进行计数:

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

To call the function count repeatedly with each item from a list (A B C), every time counting matching items the same sequence mylist:

(mapcar (lambda (x) (count x mylist)) '(A B C))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文