Scheme 球拍组合功能
我需要一些关于以下用于计算列表组合的代码如何工作的解释Scheme 球拍组合功能,scheme,racket,Scheme,Racket,我需要一些关于以下用于计算列表组合的代码如何工作的解释 (define combs L k) (cond ((= 0 k) '(())) ((null? L) '()) (else (append (map (λ (x) (cons (car L) x)) (combs (cdr L) (- k 1))) (combs
(define combs L k)
(cond ((= 0 k)
'(()))
((null? L)
'())
(else
(append (map (λ (x) (cons (car L) x))
(combs (cdr L) (- k 1)))
(combs (cdr L) k))))))
- 将列表中的零元素组合为
”(())
- 将空列表中的任何内容组合在一起,得到
”()
- 对于最后一种情况,结果分为两部分:
- 包含
的组合,以及(车辆L)
- 不需要的组合
(cdr L)
中的k
元素组合起来
对于项目1,形成(cdr L)
中k-1
元素的组合,然后将(car L)
添加到每个元素中