とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

動かないプログラム

とは言っても,バグっているプログラムの事ではありません。

プログラム言語Cなんかは上から下へ処理が落ちていきますよね*1。でも Scheme の演習やってると,プログラムが動いているように見えないんですよ。なんと言うんだろ?止まってるような感じ。うーん,あらかじめルールが決まっていて,プログラムをコンパイルまたは走らせたときに,その場で結果が出るような感じ。よく分からないのですが,これが「関数型」だとか「副作用がない」の意味なんでしょうか*2?すげー違和感で,もやもやする。SchemeのコードをCに置き換えることはできるのですが,何が違うんだろ?
リスト+再帰云々のところでつまずいたときに別サイトを参考にしたら,begin とか display ってのが出てきたんだけど,この begin が動くプログラムって感じがした。
分かりそうで分からない。

*1:もちろん選択・分岐もありますが。

*2:set!とかは副作用があるように見えるんだけど。これが純粋関数型ではないって事?