Lisp Jscheme如何查找列表中的所有事件?

Lisp Jscheme如何查找列表中的所有事件?,lisp,Lisp,(定义myList’(a b c d e a f)) 如何返回所有出现的“a”的列表。在这种情况下,返回的值是“(a)您可以简单地使用结果列表迭代列表,并在找到匹配项时对搜索的元素进行约束: racket@> (define (occurrences list elem) (define (iter list result) (cond ((null? list) result) ((equal? (ca

(定义myList’(a b c d e a f))


如何返回所有出现的“a”的列表。在这种情况下,返回的值是“(a)

您可以简单地使用结果列表迭代列表,并在找到匹配项时对搜索的元素进行约束:

racket@> (define (occurrences list elem)
           (define (iter list result)
             (cond ((null? list) result)
                   ((equal? (car list) elem)
                    (iter (cdr list) (cons elem result)))
                   (else (iter (cdr list) result))))
           (iter list '()))
racket@> (occurrences '(1 2 3) 1)
'(1)
racket@> (occurrences '(a b c d e a f) 'a)
'(a a)
racket@> 

顺便说一句,我在Racket中写了这篇文章,但它应该适用于任何Scheme方言/实现。

如果它是家庭作业,你应该这样标记它。