'aまたはError of'の値を返すことができる一般的なTryValueタイプの構文は何ですか?f#discriminated union generic
type TryValue =
| Value of 'a
| Error of 'b
エラーが文字列であれば、それは大丈夫です:
type 'a TryValue =
| Value of 'a
| Error of string
私はエラークリエーターを取るtryRun機能、関数を実行しようとする機能やパラメータを定義したいのですがパラメータとし、すべてのエラーでエラーを作成するには、エラーの作成者機能を使用します。
let tryRun createErrorFn param fn =
try
Value (fn param)
with
| ex -> Error (createErrorFn ex.Message param)
そしてtryRunでラップする任意の関数のラッパー:
let wrapTryRun createErrorFn fn param =
match param with
| Value a -> tryRun createErrorFn a fn
| Error e -> Error e
今私は(まだ完全にこれを働いていない、擬似コード)機能のリストを実行することができます。
let createErrorFn errorMessage param =
URLProcessignError {url=param.url;errorMessage=errorMessage}
[fn1;fn2] |> List.fold (fun acc fn -> (wrapTryRun createErrorFn fn acc))
に見えます[F#4.1]の結果のタイプ(https://blogs.msdn.microsoft.com/dotnet/2016/07/25/a-peek-into-f-4-1/) – s952163