scalaz

    6熱度

    1回答

    我想創建一個RDD來收集迭代計算的結果。 如何使用一個循環(或任何替代)來代替下面的代碼: import org.apache.spark.mllib.random.RandomRDDs._ val n = 10 val step1 = normalRDD(sc, n, seed = 1) val step2 = normalRDD(sc, n, seed = (step1.max).

    3熱度

    1回答

    我最近聽說過scala中的unboxed tagged類型,當我試圖瞭解它的工作原理時,我發現這個question指出scalaz中實現的問題。其中的一個修復的後果是必須明確的拆禮物標籤類型: def bmi(mass: Double @@ Kg, height: Double @@ M): Double = Tag.unwrap(mass)/pow(Tag.unwrap(height)

    2熱度

    1回答

    我從萬里薩賓要點例如創建這樣的標籤類型: type Tagged[U] = { type Tag = U } type @@[T, U] = T with Tagged[U] sealed trait A sealed trait E sealed trait B extends E sealed trait C extends E d

    2熱度

    1回答

    我正在嘗試將AsyncHttpClient和Scalaz Task結合在一起。通常,如果我使用AsyncHttpClient,我可以調用client.close來停止客戶端。 val asyncHttpClient = new AsyncHttpClient() println(asyncHttpClient.prepareGet("http://www.google.com")) asyn

    3熱度

    2回答

    我有以下問題: val sth: Future[Seq[T, S]] = for { x <- whatever: Future[List[T]] y <- x: List[T] z <- f(y): Future[Option[S]] n <- z: Option[S] } yield y: T -> n: S 我希望讓這段代碼的工作(我猜每個人都明

    2熱度

    1回答

    我發現Option Monad要直觀明白,而List不是。 Some(1) >>= { x=>Some(x+1)} Ma -> a -> Mb -> Mb 如果我提取一些值(1)我知道這是1 但列表中的情況下 List(3,4,5) flatMap { x=> List(x,-x) } 如果我提取列表值,我能得到什麼?如何使理解過程直觀

    4熱度

    2回答

    我們可以將monad描述爲計算上下文,monad實現完全保留該上下文的含義。 例如Option - 上下文的含義是值可能存在。 考慮到Option數據類型,唯一有意義的實現是pure = some, flatMap f = {none => none; some x => f x } 正如我對monad的理解一樣,通過遵循類型簽名 - 對於任何monad,只有一個合理的實現。換句話說,如果您想爲值

    -1熱度

    1回答

    我有這樣的: case class Sides[A](east: A, west: A) 我想用Future.sequence如何Sides[Future[Boolean]]這個Future[Sides[Boolean]] 轉換? 這是docs: def sequence[A, M[X] <: TraversableOnce[X]](in: M[Future[A]])(implicit cb

    0熱度

    1回答

    有人可以解釋爲什麼我應該使用斯卡拉的NonEmptyList斯卡拉的List? 在一個不變的應用它並沒有多大意義,以創建一個空的List 所以我就應該總是在一個不變的應用程序中使用NonEmptyList? 爲什麼我會使用斯卡拉的NonEmptyList而不是斯卡拉的List除了保證列表中至少有一個元素的明顯原因?

    1熱度

    2回答

    我按照書功能和無功領域建模 而對於一些服務方式,它只是代表工作到存儲庫層的設計。有沒有辦法減少這個樣板: trait FeedbackServiceImpl extends FeedbackService { override def saveTFE(feedback: TripFeedbackEvent) = Kleisli[Future, Context, Either[S