S式パーサが作りたくなった。

D言語のS式パーサってないかなと、ちみっと探したけどなかったので、作りたくなる。
適当に、googleでS式パーサを探したら、pythonのソースがあった。私はpythonを知らないので、勉強してみた。ネストで構造を表すってのが新しいって話は聞いたことがあったのだけど、そのとおりだった。とりあえず、基本的なところだと、forループをレンジで行うって所以外は問題なく覚えることが出来た。で、Dに移植を開始した。カッコを付けて、;を付けてってのがメンドクサイ。mapをforeachに置き換えるのがメンドクサイ。型が何なのかを探すのがメンドクサイ。メンドクサイところは何も考えずに書き換えていけばよいので問題なし。で、yieldってところで止まる。ジェネレーターってやつらしい。ちょいと難しい。疲れたので、停止。後で、見よう。スキームを再挑戦したくなった。何度目のチャレンジだろうか?さっぱり覚えてない。carとかcdrとかあったな。くらいしか覚えてない。俺はバカか?まぁいいや、何かが問題で覚えられないんだろう。とりあえず、手続き型言語と対比して書いていってみよう。ってことで、やりたくなったことをTODOと書いて、読み進める。どうも、print文がない、ファイル処理周りが分からないってのがネックだったようだ。load display with-output-to-fileあたりが使えることを確認できると安心した。参考にしていたサイトでは、一番最後に書いてあった。わざと敷居を高くしてるのだろうか?関数型言語ハスケルってのもあるようだしいろいろやってみたいからやってみよう。flexやbisonもちみちみやってみよう。言語勉強するのって楽しいなぁ。

(define (helloworld)
  (display "hello world")
  (newline))

ここから、Schemeは始まると自分としては分かりやすいのでした。