Miranda
Miranda は遅延評価の純粋関数型言語であり、副作用がなく、命令型プログラミング機能は存在しない。
具象構文の最も大きい特徴としては、オフサイドルールを採用している。
|| からその行の終わりまでがコメントとして扱われる。別のコメント記法は「文芸的プログラミング」的なもので、行の先頭に > がない行は全てコメントとして扱われる。
Miranda の基本データ型は char、num、bool である。文字列は char のリストであり、num は内部的には2種類の形式があって、自動的に変換される(多倍長整数がデフォルトで使われ、必要に応じて浮動小数点数が使われる)。
タプルは様々な型のデータの羅列であり、抽象的な観点からは直積型である。
リストもある。角括弧で表され、各要素はカンマで区切られる。全要素は同じ型でなければならない。
リストの連結は ++、差分は --、要素追加は :、サイズ(要素数)は #、インデックス指定は ! である。以下に使用例を挙げる。
その他にもリスト構築のショートカットがある。.. は要素が数列の場合に利用可能で、1 ずつ増加する数列以外も指定可能である。
さらに強力なリスト構築機能として「リスト内包表記」(ZF記法とも呼ばれていた)があり、2種類の形式がある。式を項の列に適用する形式は以下のようになる。
この意味は、n の自乗のリストで、n は全ての正の整数のリストから取られる。