定義が知りたいなら SICP だけど、今もう SICP を読む価値はあるだろうか。
swap は1命令なの?
最近のモダンなプログラミング言語を混ぜると説明がややこしくなるので、混ぜない方がいいんよね。言語によっては型が値だったりするし。
式だけで理解しようとすると難しいのかも。 式と対比するのが命令。命令は結果として値を残さない。 例えば Python の import あれは命令なので式じゃない。
どうせ忘れる(これは別に構わない)ので、今は雰囲気だけ理解すればいい。
もぐもぐおるな。
戻り値で演算結果を返す以外の事をすれば純粋関数じゃない。
最近そんなネタがあったね。seed が固定なら rand は純粋関数だ、みたいな。
関数が外部の状態に変化を与えることを「副作用がある」と言います。 ファイル更新 通信 表示 変数更新
悪い大人は「副作用を知りたいなら Lisp」とか言い出すので駄目。