現在、私はこのパターンを使用します。さまざまな種類の多くの「結果」を簡潔に組み合わせることはできますか?
let a: Result<A, ParseError> = parseA();
let b: Result<B, ParseError> = parseB();
let c: Result<C, ParseError> = parseC();
a.and_then(|a| b.map(|b| (a, b))).and_then(|(a,b)| c.map(|c| {
// finally the crux of what I want to do
a.foo(b).bar(c)
}))
は、Scalaのための式として、a
、b
& c
を定義するために、より簡潔な方法はありますか?
ここにしようとしているように、これは正確には「結果を結合する」というわけではありません。しかし、最近私はこれを行っています。すべてをまとめて解析すると、解析が行われます(http://play.integer32 .com /?gist = 9470f7e9f293852f7444c1017ae91fa9&version = stable)。私はこのシナリオで失敗したものがあれば、それがはるかに難しいことを考えれば、これがあなたに適しているかどうかは分かりません。 –
私はそれが好きです。それは私が必要とするものではありませんが、私の質問が少し誤解を招くことに気づかせてくれます。私はそれを書いて別のものを持っていきます。 – Synesso