【发布时间】:2013-10-02 00:25:47
【问题描述】:
我想创建一个函数,该函数会在列表中出现多少次元素。例如在列表中:'(a b c b b c c a) 我希望它返回一个嵌套列表: '((a 2) (b 3) (c 3))
我知道这个函数看起来像这样:
(define collect-similar
(lambda (elm ls)
(cond
[(null? ls) '()]
[(equal? elm (car ls))]
我知道我需要继续检查列表,直到它返回到空列表的基本情况,我可以使用 cadr 检查列表的其余部分。但我不太确定如何获取该值以及如何使其返回嵌套列表。
我正在尝试编写的下一个函数查找列表中最常见的元素。例如,在列表 '(a a a a a b c) 上运行函数将简单地返回 a。我知道我可以利用 collect-similar 功能并找到最高的数字。
【问题讨论】:
-
这样的函数通常称为直方图。
标签: scheme