私の知る限り、基本的にそれらは異なるタイプのモナドであるため、熱心であるIterator.map
一方で怠惰です。Vector.map
EagerTry
andが現在のLazyTry
と同じように動作する可能性があるかどうかを知りたいのですが、後者の ( ) を使用すると、結果が必要になるまで (必要な場合)、渡されたクロージャーの実行が遅延します。Try
LazyTry
lazy
as の宣言は Scala ではうまく機能しないことに注意してください。特に、特定のスコープで機能します。パラメーター (名前によるパラメーター) を渡すときの代替手段が存在します。問題は、(遅延) 値を外部スコープに返すときに遅延動作を実現する方法です。Option
は基本的に長さ 0 または 1 のコレクションです。これは遅延コレクション ( Iterator
、Sequence
) と同等のケースですが、長さ 0 または 1 に制限されます (Option
および などEither
)。私は特に興味があります。Try
つまり、使用されるのとLazyTry
まったく同じようTry
に使用します。これは他の場合でも同様であると思います(Option
およびEither
)。
EagerTry
現在の標準Try
は熱心であるため、すでに があることに注意してください。残念ながら、クラスは封印されているため、同じクラスの熱心なバージョンと遅延バージョンを作成するには、そのうちの 3 つを定義し、2 つを実装する必要があります (1 つを定義して実装するのではなく)。Try
ポイントは、他のソフトウェア層がそのコードの実行時間を気にせずにを返すこと、つまり抽象化です。