他の言語での例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)
OCamlではヴァリアント型と言い、前述の二分木と同等のデータ型は、次のように書く。 type node = Leaf of int | Branch of node * node また、伝統的なMLではdatatypeというキーワードを使う。いずれも、ofの後に1個しか型を指定できないので、Branchのように組み込みの直積型であるタプルを併用する必要がある。MLでもコンストラクタの先頭は大文字だが、型名の先頭は小文字である。 Haskellの場合と同様にして、インタプリタ上で値を作る例と深さを返す関数の例を示す。 # Leaf 1;;- : node = Leaf 1# Branch (Branch (Leaf 1, Leaf 2), Branch (Leaf 3, Leaf 4));;- : node = Branch (Branch (Leaf 1, Leaf 2), Branch (Leaf 3, Leaf 4)) let rec depth tree = match tree with Leaf _ -> 1| Branch (a, b) -> 1 + max (depth a) (depth b) Visual Prologでは次のように書く。 domains tree = empty(); leaf(integer Leaf); node(tree Left, tree Right). この例では、leafとnodeの他に、空の木を示すemptyがある。
※この「他の言語での例」の解説は、「代数的データ型」の解説の一部です。
「他の言語での例」を含む「代数的データ型」の記事については、「代数的データ型」の概要を参照ください。
- 他の言語での例のページへのリンク