by shigemk2

当面は技術的なことしか書かない

対話によるCommon Lisp入門 7 副作用

関数型プログラミングでは、関数というものの本来の役割は単に値を計算して返すだけのものである
それ以外の働きを副作用と呼ぶ。

defunで関数を定義するとき、defunの返す値は関数名を表すシンボルだが、シンボルよりも重要なのは関数を定義する動きそのものである。
また、setfは代入した値(第2引数の値)を返すが、代入した値より代入の働きのほうが重要だ。

なお、defunもsetfも、関数のように返り値は存在するものの、一部の引数、ないし引数を全く評価しないので特殊形式と呼ばれる。