EoPL reading (57) 2.2 An Abstraction for Inductive Data Type

昨晩何もデキんかった鬱憤がタマりまくっております。ばたばたしてる中での机上の現実トウヒなソレを以下に。

Exercise 2.3

(define vector-of
  (lambda (pred)
    (lambda (val)
      (let ((len (vector-length val)))
        (let f ((n 0))
          (or (= n len)
              (and (pred (vector-ref val n))
                   (f (+ n 1)))))))))

最後の閉じ括弧の数があってるかどうか微妙。職場端末でも gosh 起動できん。禁断症状が出そうです(何
# 早くわしに mac をくれー

追記

以下な試験を書いてパスしてます。ちょっとすっきり

(use gauche.test)

(add-load-path ".")
(load "vector-of")

(test-start "vector-of")
(test-section "vector-of")
(test* "number vector"
       #t
       ((vector-of number?) #(1 2 3 4 5)))
(test* "not number vector"
       #f
       ((vector-of number?) #(1 2 a 4 5)))
(test* "not number vector"
       #f
       ((vector-of number?) #(a b c)))

(test* "symbol vector"
       #t
       ((vector-of symbol?) #(a b c)))
(test* "not symbol vector"
       #f
       ((vector-of symbol?) #(a 2 c)))
(test* "not symbol vector"
       #f
       ((vector-of symbol?) #(1 2 3 4 5)))

(test-end)

パケジの download が終了したら tex の練習着手予定。