I'm trying to get an item from a list at a given index for a loop statement.
(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
)))))])))
In this case, best is the list and I need to get its value at the countdown index. Could you help me on that?
Gil Matzov
Or build this yourself:
(define my-list-ref
(lambda (lst place)
(if (= place 0)
(car lst)
(my-list-ref (cdr lst) (- place 1)))))
but if you want to check if the list is done and don't worry by error yo can do this as well:
(define my-list-ref
(lambda (lst place)
(if (null? lst)
'()
(if (= place 0)
(car lst)
(my-list-ref (cdr lst) (- place 1))))))
来源:https://stackoverflow.com/questions/10523361/how-do-i-get-an-item-from-a-list-at-a-given-index-in-racket-language