以下に、問題を引き起こす私の F# プログラムの一部を掲載します。
...
match words with
| name :: "of" :: context :: "=" :: value :: _ when Double.TryParse(value) |> fst ->
let var = new FuzzyVariable(name, context, Double.Parse value)
fuzzyVars <- var :: fuzzyVars
列をなして:
fuzzyVars <- var :: fuzzyVars
「Type unit に適切な値として null がありません」というエラーが表示されます。私は F# プログラミングにかなり慣れていないため、この問題の原因がよくわかりません。
fuzzyVars は FuzzyVariable リスト型です。FuzzyVariable はカスタム定義型です。
編集。
@Tomas Petricek が指摘したように、私のコードには null を返す行がありました。
| [] -> null
私の意図は、試合の価値を無視することでした。それを行う適切な方法は次のとおりです。
| [] -> ()
その後、すべてが正常に動作します。