lengthのもうひとつの実装

リストの個数を返す手続き。

 cf. lengthの別の実装 – 理想のユーザ・インターフェイスを求めて

名前付きletの使い方を忘れてて調べた^^;

(define length
  (lambda (l)
    (let loop ((len 0) (lis l))
      (if (null? lis)
          len
          (loop (+ len 1) (cdr lis))))))

(print (length '(1 2 3 4 5)))
takatoh@nightschool $ gosh length.scm
5