gpt4 book ai didi

lisp - 查找输入列表中每个元素出现次数的函数

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:30 24 4
gpt4 key购买 nike

所以我正在编写一个程序,它将向我打印输入列表中每个元素的出现次数。到目前为止,我已经设法为单个符号做到了。 (在我的 c 示例中)。以下代码的结果是 2。

(defun stejem (a L)
(cond
((null L) 0)
((equal a (car L)) (+ 1 (stejem a (cdr L))))
(t (stejem a (cdr L)))))

(print (stejem 'c '(a b c b b a c d)))

现在我正在尝试将其升级为打印 a、b、c 和 d 出现次数的方式。例如输出将如下所示:((a 2)(b 3)(c 2)(d 1))

最佳答案

我已经设法解决了这个问题。感谢您的建议。

(defun len (l)
(if l
(1+ (len (cdr l)))
0))

(defun filter (s c)
(cond ((equal c (car s)) (cons (car s) (filter (cdr s) c)))
((null s) nil)
(t (filter (remove (car s) s) c))))

(defun ponavljanje (s)
(cond ((null s) nil)
(t (cons (cons (car s)
(cons (len (filter s (car s))) nil))
(ponavljanje (remove (car s) s))))))

(print (ponavljanje '(a b c b b a c d)))

关于lisp - 查找输入列表中每个元素出现次数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50516012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com