変数が定義されていないときはこの値とする

Maximaでこのようにする処理で結構はまった。perlでいうと、my $a ||= 1;に対応するものだ(厳密には違うが)。

if not member('a, values) then a : 1 $

どうも、こうすればよいようだ。valuesは現在定義されている変数のリストで、member()は第1引数が第2引数にあればtrueを返す関数である。
プライムはaにすでに中身があると先に展開されてしまうので、これを防ぐため。