買っただけで放置していたGauche本を読み始めた。何気ない一行も実際に実行しながら読んでるので、まだまだ序盤。
『2種類の再帰』って項目があるんだけど、今まで他の言語でプログラム組んでて、そんな基本的っぽいことをまったく意識しないで組んでたんだなーとちょっと情けなくなった。
ちょうどこの項目の前に出てくる練習問題は、二問とも特に意識せずに末尾再帰で解いてた。つか、C/C++に馴染んでると自然に末尾再帰になる‥‥気がする。で、私には“非”末尾再帰の方の発想がなかったので、関数型言語やるんなら、非末尾再帰の方が、コードきれいだし、そっちの方がいいのかな?と思った矢先に、「末尾再帰で書けるなら、なるべくそうするべき」と書かれてて、あれー?となった。
末尾再帰の方がいい理由は理解してるんだけど、それってちょっと関数型言語否定してないか?とか思ったり思わなかったり。
とりあえず、『プログラミングGauche』の練習問題と、その後の構成が巧妙すぎるのには感心したのであった。