Scheme

さて、本を読み進めるうちに書くコードも長くなってきた。たとえば前のエントリで書いた関数 o= は32行ある。だけど、本質的な部分はテスト用コードと空行を含めても11行だ。残りは、o= を作るための補助的というか基本的な関数のコードで占められている。こういうコードは冗長なだけでなく、コードを見難くする。…
2014年1月11日
2 分
さあ、今日は3章の残りをやっつけるぞ。まずは insertR から。…
2014年1月10日
1 分
続いて、subst と subst2。これは答えを見ちゃった。だって隣に書いてあるんだもの。…
2014年1月10日
1 分
multirember はアトム a とラット lat を引数に取り、lat の中のすべての a を取り除く。…
2014年1月10日
1 分
multiinsertR…
2014年1月10日
1 分
3章の最後は、multisubst だ。 (multisubst new old lat) は lat の中のすべての old を new に置き換える。…
2014年1月10日
1 分
今まで Gauche のインタラクティブモードで作業をしてきたけど、そろそろコードを打ち込むのが大変になってきた。間違えたりすると最初から打ち直しだし。…
2014年1月10日
1 分
rember は remove member の略だそうだ。関数 rember はアトム a とリスト lat を引数に取って、lat の中の一番最初に現れる a と同じアトムを取り除いたリストを返す。…
2014年1月9日
1 分
関数 first は空のリストまたはリストのリスト(ただし内側のリストは空ではない)を引数に取り、内側の書くリストの最初のS式からなる新しいリストを返す。…
2014年1月9日
1 分
書いてみたっていうか、内側のリストが空でないのが保証されているのなら、map (と car )を使うほうが素直に感じる。まあ、本(「Scheme手習い」)では順を追って説明していくのだろうけど。…
2014年1月9日
1 分