monads

    2熱度

    2回答

    你將如何構造一個函數,在這個函數中你既想做副作用又能返回一個值? 例如,我想下面的功能: def futureFromHttpCall: Future[HttpResponse] = doHttpCall.foreach(publishDomainEvent).returnOriginalFuture (?不知何故,我有一種感覺,單子會想出這樣如果是這樣的路徑林有點熟悉的貓如果有這個

    1熱度

    3回答

    是否可以編寫一個函數,其功能類似(Something -> Something),並返回它,但是類型爲(Maybe Something -> Maybe Something)? 例如爲: f :: Point -> Point f x = [some code goes here] makeItMaybe :: (Point -> Point) -> (Maybe Point -> Mayb

    4熱度

    1回答

    早期 鑑於返回m (Maybe a)我試圖返回m (Maybe [a])其中,如果任何單個的結果是Nothing整個結果是Nothing的行動清單的更地道的方式。 m包含StateT和我想避免運行任何動作則返回第一個Nothing後。 嘗試使用mapM,然後將Maybe移動到列表的外部會導致所有正在運行的操作。 我有這樣的解決方案,但只用了很多包裝的嵌套的case語句和去包裹給我的感覺,有可能是這

    1熱度

    2回答

    我使用此功能在以下格式的字符串讀自然數的列表:[1, 2, 3]: readMaybeIntList :: String -> Maybe [Int] readMaybeIntList line = case readMaybe line of Just l -> return l Nothing -> Nothing 現在它僅適用於整數 - 會是

    1熱度

    1回答

    我有一個模塊Game,它定義了一個像這樣的方法play :: Board -> Move - > Board。 我想用國家單子名爲Playing另一個模塊導入Game模塊,這樣我可以從那裏循環調用play直到Board達到一定的狀態。 我想用State State Monad獲得的Board來調用方法,然後用play返回的Board更新State Monad值。 因此,當循環正在進行時,我想要接收

    0熱度

    1回答

    我正在使用HDBC-Sqlite3,我想根據頁面進行查詢。我想從IO Monad中獲取數據。這應該是可能的,因爲「get」已經不是純粹的。一般來說,Haskell是如何完成的? main = do conn <- connectSqlite3 "test.db" scotty 3000 $ do get "/" $ do x <- quickQuery'

    3熱度

    2回答

    我有一個非常簡單的函數f :: Int -> Int,我想寫一個程序,每個n = 1,2,...,max調用f。在每次撥打電話f後,應該顯示該點以前使用的(累計)時間(以及n和f n)。這如何實現? 我還是很新的,以在Haskell輸入/輸出,所以這是我到目前爲止已經試過(使用一些玩具例子功能f) f :: Int -> Int f n = sum [1..n] evalAndTimeFir

    3熱度

    1回答

    練習6.8,Chiusano和Bjarnason,Scala中的函數式編程, 87問一個人如何可能會爲以下特徵實現flatMap(): trait RNG { def nextInt: (Int, RNG) } type Rand[+A] = RNG => (A, RNG) 接聽鍵給出瞭如下解決方案: def flatMap[A,B](f: Rand[A])(g: A => R

    0熱度

    1回答

    我想知道如何在Haskell使用identantion,但我有這個代碼的問題: module TestTSPGA where import TSPGA -- in this we have the type used on the second function import Data.List main :: IO() main = do contents <- rea

    0熱度

    1回答

    我有一個Haskell功能在我的Prolog解釋分配讀取 renames :: Rule -> State ExecState [(Term, Term)] 產生(幾乎)的變量在Prolog的規則替換(這樣的變量名不衝突統一期間)。 由該函數產生的對的形式爲(Variable "X", Variable "X_11")的,這意味着變量X應當被重命名爲X_11等(用於重命名計數器包含在ExecS