AFAIK,Iterator.map是懒惰而Vector.map渴望,主要是因为它们是不同类型的单子。
我想知道是否有任何机会让 aEagerTry和LazyTry它的行为就像currentTry一样,但是后者 ( LazyTry) 延迟了闭包的执行,直到需要结果(如果需要)。
请注意,lazy在 Scala 中将内容声明为不太适用,特别是它适用于给定范围。传递参数时存在另一种选择(按名称传递参数)。问题是如何在将(惰性)值返回到外部范围时实现惰性行为。Option基本上是长度为 0 或 1 的集合,这将是惰性集合 ( Iterator, Sequence) 的等效情况,但长度限制为 0 或 1 (如Optionand Either)。我特别感兴趣Try,即LazyTry完全按照Try将要使用的方式使用。我想这在其他情况下应该是类似的(Option和Either)。
请注意,我们已经有了EagerTry,因为当前的标准Try是急切的。不幸的是,这个类是密封的,因此,要拥有同一个类的渴望和惰性版本,我们需要定义它们中的三个并实现它们中的两个(而不是定义和实现一个)。重点是返回 aTry而没有其他软件层担心该代码的执行时间,即抽象。