Tiny CLOS を追加
Mosh のライブラリに Tiny CLOS を追加しました。
現時点では実用的な速度では動かないので注意。以下のような短いスクリプトでも実行に 500msec ほどかかる。コンパイラ速度改善のためのベンチマークとして使えそう。
(import (rnrs) (clos user) (mosh string)) (define-class <point> () x y) (define-method initialize 'after ((point <point>) init-args) (initialize-direct-slots point <point> init-args)) (define-method print-object ((point <point>) port) (print-object-with-slots point port)) (define-generic distance-to-origin) (define-method distance-to-origin ((point <point>)) (sqrt (+ (expt (slot-ref point 'x) 2) (expt (slot-ref point 'y) 2)))) (define p1 (make <point> 'x 3 'y 4)) (format #t "distance of ~a to origin: ~a~%" p1 (distance-to-origin p1))