(rontolisp) docs
← マップ・セット・ベクター

assoc

(assoc m k v ...)

m のペアに与えたペアを加えた新しいマップを返します。後のペアが勝ちます。m は決して書き換えられません。nil への assoc は空から始めます。奇数個のペアは拒否されます。キーは = で比較し、既にある = なキーへの追加はそのキーを保ったまま値を置き換えます。record への追加はエントリ表に入り、型は保たれます。

ベクターへの追加ではキーが添字です。その要素を置き換えた新しいベクターを返し、要素数と等しい添字は末尾に追加します(オラクル同様)。整数でないキーは Key must be integer を、範囲外の添字はシグナルを上げます。コピーはベクター全体です(オラクルの永続ベクターは1経路だけをコピーします)。

値としてはマップに残り引数のペア列を取ります。残り引数が奇数個の場合は実行時にシグナルを上げます。

Transient(assoc!)は名前で拒否されます。