Ben ListW.<^>
oynamalar yaparak, tanım olan geçerli:Scalaz.ListW kullanarak çıkarsama sorusu yazın. aşağıdaki gibi <^>
def <^>[B: Zero](f: NonEmptyList[A] => B): B = value match {
case Nil => ∅
case h :: t => f(Scalaz.nel(h, t))
}
ben gelip anlamaya olamaz Option
Bu örnekte
scala> case class CC(v : Int)
defined class CC
scala> val posns = List(CC(2), CC(5), CC(1))
posns: List[CC] = List(CC(2), CC(5), CC(1))
Yani için Zero
türü olarak seçildi ediliyor şimdi bunların bir listesi var. Amacım hiçbir sıfırın altında değerler ve max için benzer olup olmadığını ben dk bir None
nereden geri bir Option[CC]
posns
min/max için elde etmektir.
scala> import scalaz._; import Scalaz._
import scalaz._
import Scalaz._
scala> implicit val CCOrder = new Order[CC] {
| def order(v1 : CC, v2 : CC) = orderBy((v : CC) => v.v).order(v1, v2)
| }
CCOrder: java.lang.Object with scalaz.Order[CC] = [email protected]
scala> posns.filter(_.v < 0) <^> (_.min)
res0: Option[CC] = None
scala> posns.filter(_.v > 0) <^> (_.max)
res1: Option[CC] = Some(CC(5))
Seçeneği tam istediğim Zero
tip oldu! Herkes Typer tarafından seçilmiş olmanın nasıl Option
gelip açıklayabilir misiniz? Ben o yerde beyan yok! ListW#<^>
ve MA#min
için
, bunun yerine 'MA # min' arasında' MA # max' tanımını verir. –
Ah. Öyleyse bir sonraki sorumum olacak - "min" neden "MA" değil "Kimlik" den geliyor? –
@alexey: güncellendi. 'x.min (y)' 'Identity''den gelir,' xs.min' 'MA' ile eşleşir. – retronym