else部が必要です。問題」が回避できます。2を返すかエラーとなるかは、else部が内側と外側のどちらの条件に対応すると解釈するかに依存してしまうでしょう。else)は、特定のif文に紐付くよう意図されていたelse文が、書き手の意図に反して異なる別のif文に紐付いてしまっている状態のことを言う。problem)とも呼ばれている。JavaScript等の言語で頻繁に発生する。オフサイドルールを採用して字下げのレベルに意味を持たせたPythonやCofeeScript等の言語ではこの問題は起こらない。Rust等の言語も同様にこの問題は起こらない。†ガード付きの等式は、条件式と比べて、条件が多くなったときに読みやすい点が優れています。signumは以下のように定義すると理解しやすくなります。多くの関数は、パターンマッチを使うことで簡潔かつ直観的に定義できます。パターンマッチによる関数定義では、パターンと呼ばれる式に基づいて、列挙された同じ型の候補の中から結果が選ばれます。最初のパターンに合致したら最初の結果、そうではなく二つめのパターンに合致したら二つめの結果、という具合に結果が選ばれます。notは、パターンマッチを使って以下のように定義できます。リストを分解不可能なデータとみなしてきました。[]に対して演算子:を使って要素を一つずつ増やしていくことで生成されます。「:」は既存のリストの先頭に新しい要素を追加して新しいリストを生成する演算子で、「作成する」(construct)という意味でcons演算子と呼ばれます。リスト[1,2,3]は以下のように分解できます。[]))の略記法にすぎません。演算子は右結合になっています。[]))という意味です。演算子はリストの作成だけでなくパターンの作成にも利用できます。