変数はそれとは異なります。回しか代入が許可されないことには、計算中に変数の値が意図的に、もしくは誤って変更される可能性が低くなるという利点があります。それはつまり、プログラミングの段階で値を特定してデバッグするのが至って簡単にできるということです。構造を単純化できることから、コードが簡潔になり、場合によっては遥かに短縮されることにもなります。この演算は、値が計算されてから変数に束縛されることを意味することに注意してください。他の言語の場合には、関数や演算に対する参照を利用して値を設定することができます。アクセスした時点での参照の値によって、値が異なる場合があるということです。変数の値は常に、その変数の作成時に既知となります。使用してすべての変数の束縛を解除することができます。変数に値を代入するということは、実際には特殊なタイプのパターン・マッチングということになります。値を個別に抽出します。(つまり、値が割り当てられた変数)、数学演算、そして関数呼び出しです。つの要素からなるタプルに解決されなければならないということです)。式が実行されると、式が評価され、その結果がパターンに割り当てられます。{(9+45),abc}.{54,abc}評価の際には、パターンまたはパターンの要素が束縛された変数である場合、パターン・マッチングの結果は比較になることに注意してください。このことは、さらに強力な選択割り当てを可能にします。いうパターン・マッチングを使用することができます。パターン・マッチングによって、前述の構成体表記を使用したリストあるいはタプルから要素を取得することもできます。つの要素を取得し、残りを維持する方法を示します。リストの残りの要素が割り当てられています。関数は、他のあらゆる言語と同様に、すべてのプログラムの基本構成要素です。(シェルから関数を定義することはできません)。引数には、さらに複雑な型を含めることができます。