3

None の結果を説明するメッセージを提供する必要があるため、基本的には次のようなことができればいいのにと思います。

let func x y z = if x y then Some(z) else None("It didn't work out, because blah blah blah")

これの標準タイプはありますか?

いいえの場合、自分の型に同じ Some と None の名前を使用できますか?

アップデート:

独自のユニオンを作成してみました。

type CanBe<'a> =
| Some of 'a
| None of string

うまくいきそうですよね?

4

2 に答える 2

7

Jon Purdy が指摘しているように、これに使用できるタイプがありますが、自分がしていることにより具体的なものを使用したほうがよいでしょう。幸いなことに、実装するのはかなり簡単です:

type Result<'a> =
  | Success of 'a
  | Failure of string

let func x y z = 
  if x y then Success(z) 
  else Failure("It didn't work out, because blah blah blah")
于 2013-09-07T04:21:47.747 に答える