我需要實現子列表?作爲使用累積的單線程函數。 如果set1在set2中,則返回true。實現子列表?使用累積在球拍
事情是這樣的:
(define subset?
(lambda (set1 set2)
(accumulate member? (car set1) (lambda (x) x) set2)))
老實說,我覺得我在累積是如何想與成員的工作只是困惑,或者如果成員甚至對操作者的正確選擇。
我的累加功能是:
(define accumulate
(lambda (op base func ls)
(if (null? ls)
base
(op (func (car ls))
(accumulate op base func (cdr ls))))))
和成員?:
(define member?
(lambda (item ls)
(cond ((null? ls) #f)
((equal? item (car ls)) #t)
(else (member? item (cdr ls))))))
難道你不允許使用任何其他的功能呢?如果不是,這會變得混亂。如果你是,首先找出一種方法,你可以得到一個布爾值列表,確定'set1'的元素是否是'set2'的成員。該清單很容易積累。 – molbdnilo