2012-02-12 11 views
2

OCamlのこの関数定義には、正確にはvar_cの値が何か分かりません。それはvar_cに関数の結果のデフォルト値を割り当てていますか?または、デフォルト値Enum.peek var_cからvar_c?OCaml引数のデフォルト値が不明確

let rec read var_a ?(var_b = var_a) var_c = match Enum.peek var_c with 
    None -> None 
    ... 

ありがとうございました。

答えて

5

var_cあなたが投稿したスニペットにはデフォルト値がありません。これはオプションではなく、引数として指定する必要があります。 var_bはデフォルト値(つまり、var_aの値)を持っています。

match Enum.peek var_c with ...は、関数の結果になります。それは何かのデフォルト値ではありません。

+0

+1良い記憶のために、私は再びそれを見なければならなかった... :) –

+0

それを見る一つの方法は、最初の '='が疑問符( '?')と一緒に行くことです。 2番目の '='は 'let 'と一緒に行きます。したがって、最初の '='はデフォルト値を与え、2番目の '='は関数の本体を与えます。 –

+0

実際、今は非常に明確になっています。あなたの答えをありがとう! – GiantSquid

関連する問題