2
删除元素我有两个方法,一个用于计算列表中的一个元素,另一个来自同一列表中删除相同的元素。我应该怎么做才能同时计数和清除?我试了很久,但没有任何工作。我使用这个列表:(列表1 2 3 2 1 2 3),最后应该是:((1。2)(2。3)(3。2))。第一对数是一个元素,第二对数是所有列表中第一对数的总和。 我尝试: 1)它仅适用于计数,结果是:((1 2)(2 3)(3 2)(2 2)(1)(2 1)(3。 1)) 2)它仅适用于删除,结果为:((1。2)2 3 2 2 3)如何计算,并在同一时间列表中的方案
问题在哪里?
这是用于计数:
(define count-occurrences
(lambda (x ls)
(cond
[(memq x ls) =>
(lambda (ls)
(+ (count-occurrences x (cdr ls)) 1))]
[else 0])))
(计数出现“2(表1 2 3 2 1 2 3)) - > 3
这是用于除去:
(define (remove-el p s)
(cond ((null? s) '())
((equal? p (car s)) (remove-el p (cdr s)))
(else (cons (car s) (remove-el p (cdr s))))))
(删除-EL“2(表1 2 3 2 1 2 3)) - >(1 3 1 3)
谢谢。这对我来说有点复杂,因为我只是初学者,但它正在工作。我应该更加努力地学习Scheme。 – Ats