lu1*_*u1s 10 scheme list racket
我正在尝试从循环语句的给定索引的列表中获取项目.
(define decision-tree-learning
(lambda (examples attribs default)
(cond
[(empty? examples) default]
[(same-classification? examples) (caar examples)] ; returns the classification
[else (lambda ()
(let ((best (choose-attribute attributes examples))
(tree (make-tree best))
(m (majority-value examples))
(i 0)
(countdown (length best)) ; starts at lengths and will decrease by 1
(let loop()
(let example-sub ; here, totally stuck now
; more stuff
(set! countdown (- countdown 1))
; more stuff
)))))])))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,best是列表,我需要在countdown索引处获取其值.你可以帮帮我吗?
soe*_*ard 24
例:
> (list-ref '(a b c d e f) 2)
'c
Run Code Online (Sandbox Code Playgroud)
看到:
http://docs.racket-lang.org/reference/pairs.html
或者自己构建:
(define my-list-ref
(lambda (lst place)
(if (= place 0)
(car lst)
(my-list-ref (cdr lst) (- place 1)))))
Run Code Online (Sandbox Code Playgroud)
但如果你想检查列表是否完成而不担心错误,你也可以这样做:
(define my-list-ref
(lambda (lst place)
(if (null? lst)
'()
(if (= place 0)
(car lst)
(my-list-ref (cdr lst) (- place 1))))))
Run Code Online (Sandbox Code Playgroud)