2012-02-19 42 views

回答

1

你可以简单地用一个结果列表,循环列表,和缺点,只要你找到一个匹配所搜索的元素:

[email protected]> (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 '())) 
[email protected]> (occurrences '(1 2 3) 1) 
'(1) 
[email protected]> (occurrences '(a b c d e a f) 'a) 
'(a a) 
[email protected]> 

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

相关问题