Immutableオブジェクト
immutableオブジェクトの実装を行いました。以下のようなエラーの検出が可能となります(*1)
Ypsilon 0.9.6-trunk/r317 Copyright (c) 2008 Y.Fujita, LittleWing Company Limited. > (define const (list 1 2 '(3 4 5) 6 7)) > (set-car! (caddr const) 4) error in set-car!: attempt to modify literal constant (3 4 5) irritants: ((3 4 5) 4) backtrace: 0 (set-car! (caddr const) 4) ..."/dev/stdin" line 1
これで逆引きSchemeのset-car!の例に対応できました :^)
(*1) 既存のスクリプトで互換性に問題が発生する場合には--compatibleオプションまたは#!compatibleコメントで無効化できます。