web-dev-qa-db-ja.com

ラケット言語で特定のインデックスのリストからアイテムを取得するにはどうすればよいですか?

ループステートメントの特定のインデックスにあるリストからアイテムを取得しようとしています。

(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
                      )))))])))

この場合、bestがリストであり、countdownインデックスでその値を取得する必要があります。それについて私を助けてくれませんか?

12
lu1s

例:

> (list-ref '(a b c d e f) 2)
'c

見る:

http://docs.racket-lang.org/reference/pairs.html

22
soegaard

または、これを自分で作成します。

(define my-list-ref
    (lambda (lst place)
      (if (= place 0)
          (car lst)
          (my-list-ref (cdr lst) (- place 1)))))

しかし、リストが完成したかどうかを確認したいが、エラーで心配しない場合は、これも行うことができます。

(define my-list-ref
    (lambda (lst place)
      (if (null? lst)
          '()
          (if (= place 0)
          (car lst)
          (my-list-ref (cdr lst) (- place 1))))))
5
Gil Matzov