いま帰ってきた

帰りの電車、新橋で座れたのでマクロのようなものを実装した。

def test():
    e(parse("""
    (begin
    (define-macro unless (cond body)
        (if cond () body))
    (display (unless 0 1))
    (display (unless 2 3))
    )"""))

これで1とが表示される。空リストが()じゃなくてなのはまだPythonのリストを使っているせい。

  • 終電間際になる
  • 永田町まで歩くと間違いなく間に合わない
  • 溜池山王の駅に行くが1本じゃないので終電かどうかがわからない
  • 乗り換え案内で検索して銀座線を選択
  • 新橋で座れる。乗り換え予定の三越前まで4駅あるからマクロを実装するためにノートを出す
  • 三越前、いいところなので浅草まで乗ることにする
  • マクロできた
  • 浅草に着いた。家はどっちだ?
  • 家に着いた。30分かかった。

浅草〜家は、歩けない距離ではない。毎日通勤で歩くのはちょっとな。終電がないときは浅草に帰るのも選択肢に入れよう。

        • -

上の記事の

(define-macro unless (cond body)
        (if cond () body))

は正しい文法ではない。正解は

(define-macro (unless cond body)
        (if cond () body))

でもこの修正は1分でできるので、「このサイトに存在するすべての間違いは、意図されていたかいなかったかに関わらず、読者のための練習問題もしくは冗談です。」の練習問題の方だったということにします(ぉ