この Scala コードを考えると:
def compute2(maybeFoo: Option[Foo]): Option[Int] =
maybeFoo.flatMap { foo =>
foo.bar.flatMap { bar =>
bar.baz.map { baz =>
baz.compute
}
}
}
次に、理解のためにこれを翻訳します。
def compute2(maybeFoo: Option[Foo]): Option[Int] =
for {
foo <- maybeFoo
bar <- foo.bar
baz <- bar.baz
} yield baz.compute
私の質問は、このマップ/フラットマップをClojureの理解のためにどのように変換するのですか?
仮定:
- 可能であれば、慣用的な Clojure (つまり ) を使用して、 /ライブラリ
mapcat
ではなくこれを表現したいと思います。しかし、それが最善の方法である場合 (私は学ぶことにオープンです)、それを使用します。algo.monads
fluokitten