小さい値を挿入したいとします。それは行くだろうNode (insert x left, k, right)
私はinsert x left
を持つことができる方法を理解していない機能の挿入が1つの引数、キーを取ると宣言されている。どのように左にも挿入機能に渡すことができますか?OCamlのバイナリ検索ツリー挿入関数
type 'a bst_t =
| Leaf
| Node of 'a bst_t * 'a * 'a bst_t
let rec insert x = function
| Leaf -> Node (Leaf, x, Leaf)
| Node (left, k, right) ->
if x < k then Node (insert x left, k, right)
else Node (left, k, insert x right)
これは、実際には任意の数の引数を渡すことができますか? –
いいえ、関数は2つの引数を正確にとります。 (同等のフォームを見て、引数は明示的です。) –
_パラメータには名前は付けません。おそらく初心者の方にしたいと思うかもしれませんが、これは痛いものです。等号の左にあるパターンマッチングについて話したくない場合は、「単一のパラメータを指定するか、パターンマッチングを開始する」と言うでしょう。 –