Week05、Racketになれるという回が終わった。Week06は自分で言語を記述する回

慣れるといってもかなり難しいと思った。

以下学んだこと

  • Racketの構文の基礎(定義、関数、再帰呼び出し、条件分岐その他)
  • Scalaでも出てきたStream(無限列)
  • サンク(Thunk)=引数なしで遅延評価される関数
  • promise=サンクと同じだが、引数をとる。my-delayとmy-forceというのを定義してなんだかいろいろと面倒くさいが便利
  • メモ化(memoization)=再帰的に呼び出される関数のキャッシュを行う。これも便利
  • マクロ

こちらも苦心惨憺した結果、Auto Assessmentでは100点だったが、コードがよみやすいかどうかはこの次のPeer Assessmentにかかってくる。


ところでWeek06はRacketで小さな言語を記述する、という問題だ。


難しい。激しく難しい。僕に才能はなかったといことを痛感している。英語もネックだ。mletの説明なんかさっぱりだ。説明がわからないから回答のしようがない。


「自分にはコーディングのセンスがあるんだ!」「新しいアプリで時代を席巻してやるぜ!」「世界にランキングされるアプリで一山築き、そして講演で世界を飛び回ってやる!」と鼻息のあらい(僕のような不遜な)プログラマにこういうのをやらせて現実を知らしめ、打ちのめし従順にする、というのもひとつの教育の姿かもしれない。