下面是an answer regarding memoization的代碼,顯示了狀態monad中使用的memoization函數,其中狀態用傳遞的函數的結果更新,如果密鑰尚未在地圖中。 type MyMemo a b = State (Map.Map a b) b
myMemo :: Ord a => (a -> MyMemo a b) -> a -> MyMemo a b
myMemo
我使用閱讀器的單子寫了一些單子代碼,我不知道是否有任何方式使用DO-符號寫: m = Map.fromList [("This","is"), ("is","the"), ("the","secret")]
f x m = fromMaybe "default" $ Map.lookup x m
r :: String -> Reader (Map String String) String
在Haskell中,如何去寫入任意大量的文件? 舉個例子,假設我想把a到z這兩個字母放在一個文件名裏面,這個文件的內容是字母。最初的嘗試是做到以下幾點: main :: IO()
main = do
let letter = map (:"") ['a'..'z']
zipWith writeFile letter letter
這將產生以下錯誤: Couldn't