CLでSRFI-38 — #:g1

Posted 2012-03-08 08:42:00 GMT

CLでSRFI、今回は、SRFI-38の「External Representation for Data With Shared Structure」です。
CLでいう##と、#=リーダーマクロを実現するSRFIです。
CLにはもうあるので実装する必要はありませんが、とりあえず移植してみました。

動作

(with-input-from-string (in "'(#1=foo #2=bar #3=baz (#1# #2# #3#))")
  (read-with-shared-structure in))
;=>  '(FOO BAR BAZ (FOO BAR BAZ))

移植について

巨大なdefineの中に局所関数が沢山ありつつ状態を共有する系の書法に慣れません。
こういうのってどうやって組み立ててるのかなと思いますが、きっちり最初に設計→設計が完成したらコーディング→動作テスト的な流れなら別に問題にならなそうではあります。 ■

comments powered by Disqus