リストを操作する関数: length
> (define (length lst)
    (if (null? lst)
        0
        (+ 1 (length (cdr lst)))))
> (length (list 1 3 5 7))
4
> (define (length lst)    ; 末尾再帰にしたもの
    (define (length-iter restlst count)
      (if (null? restlst)
          count
          (length-iter (cdr restlst) (+ 1 count))))
    (length-iter lst 0))

一覧 前へ 次へ