for-comprehension

    12熱度

    2回答

    在Python,我可以做這樣的事情: lazy = ((i,j) for i in range(0,10000) for j in range(0,10000)) sum((1 for i in lazy)) 這將需要一段時間,但內存使用是恆定的。 同樣的結構中階: (for(i<-0 to 10000; j<-i+1 to 10000) yield (i,j)).count((a:(Int

    4熱度

    2回答

    的Learn You a Haskell教程具有using a let binder in a list comprehension一個例子: calcBmis xs = [bmi | (w, h) <- xs, let bmi = w/h^2, bmi >= 25.0] 該函數接受身高/體重對的列表,並返回對應的身體質量指數的列表超過某個上限,例如: ghci> calcBmis [(70,

    1熱度

    1回答

    我正在使用提升JSON的解析來解析某些JSON。 JSON是遞歸的,例如每個級別都存在id字段。下面是一個例子: val json = """ { "id": 1 "children": [ { "id": 2 }, { "id": 3 } ] } """ 以下代碼 var ids = for

    3熱度

    2回答

    我只是發現自己編寫了一段代碼,看起來像這樣: def language(frequencies: Array[String], text: Array[String]) = { val allText = text.mkString.replace(" ", "") val emaps = for { fset <- frequencies devs

    0熱度

    1回答

    我正在尋找最好的方式來處理一個文件,其中,基於內容,我將某些行合併到XML並返回XML。 例如鑑於 line 1 line 2 line 3 line 4 line 5 我可能要第一次調用返回 <msg>line 1, line 2</msg> 和後續調用返回 <msg>line 5, line 4</msg> 跳躍的無趣的內容3號線和排放的輸入流。 (注意:<msg>標籤將始

    14熱度

    1回答

    如果我創建了一個用於與期權價值定義的理解,它按預期工作: scala> for (a <- Some(4); b <- Some(5); val p = a * b) yield p res0: Option[Int] = Some(20) 做同樣的無論使用哪種事情的作品,如果我沒有任何價值的定義: scala> for (a <- Right(4).right; b <- Right(5)

    23熱度

    3回答

    我發現斯卡拉總是有任何「自然的解釋」。總是像「哦,但這只是一個函數被調用這個和那個對象與這個和那個參數」。從某種意義上說,沒有什麼是真正的編譯器魔法,因爲我們從其他語言中知道它。 我的問題是關於< -運營商如下面的代碼中使用: for(i <- 0 to 10) println(i) 在這個例子中,我可以看到它被改寫成類似: 0.to(10).foreach((i:Int)=>println(

    16熱度

    4回答

    我可以「屈服」成地圖嗎? 我已經試過 val rndTrans = for (s1 <- 0 to nStates; s2 <- 0 to nStates if rnd.nextDouble() < trans_probability) yield (s1 -> s2); (與,代替->),但我得到的錯誤 TestCaseGenera

    2熱度

    3回答

    假設有兩個功能findUser(id:String):Option[User]和findAddress(user:User):Option[Address]援引如下: for(user <- findUser(id); address <- findAddress(user)) println(address) 現在我想的錯誤記錄添加到這個for-comprehension。如果找不到user或a

    2熱度

    1回答

    我在Scala編程第23.5節中看到,map,flatMap和filter操作總是可以轉換爲for-comprehensions,反之亦然。 我們給出以下等價: def map[A, B](xs: List[A], f: A => B): List[B] = for (x <- xs) yield f(x) 我有一系列的地圖操作的計算出的值: val r = (1 to 100).m