読者です 読者をやめる 読者になる 読者になる

ゆの in CommonLisp

元ネタ
ゆの in Ruby - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech
ゆの in language

放映圏外からわっしょい。原作は読んでます。愛知に住みたいです。

括弧で括ろうかと思ったけど、On Lispを頼りにリードマクロ初挑戦。

(set-macro-character #\<
    #'(lambda (stream char)
        `(format t "~A" ,(read-line stream t nil t))))

(set-macro-character #\X
    #'(lambda (stream char)
        `(flet ((/ (&rest r)
                  (format t "ひだまり~{~A~}" r)))
           (let ((_ "スケッチ")
                 (/ "x365"))
             ,(read-delimited-list #\X stream nil)
             ,(read stream t nil t)))))

X / _ / X < 来週も見てくださいね!

なんとか書けた! (CLISPxyzzyで確認)
ヤバい。マクロヤバい。
実践 CommonLispまでにもうちょいOn Lisp読み進めよう。

(修正)
REPLで実行すると結果が1行で表示されないのをやっつけ修正。
ついでに < 以降をダブルクオート不要に。

(追記)
もうひとつのゆの in CL
こちらは / も _ もマクロ。顔を意識ってのが面白いなー