monads

    1熱度

    1回答

    我剛剛開始接觸Haskell的動力,並熱愛我每天遇到的抽象概念,如lens。 我到一個地步,一個REST API鏡頭會一起工作是有用的,但我花幾個小時前,發現這是不可能的......是什麼呢? 我看到的主要問題是,我不是直接訪問的數據結構,但輸出其請求字符串(我的鏡頭語法也許是錯誤的): λ> over (user "robertplant") . set favoritesong POST

    2熱度

    1回答

    我試圖在Javascript中實現函子而不使用容器類型([]/{})。因此,我僅利用純高階函數來構造它們: const option = x => f => isAssigned(x) ? option(f(x)) : none; const none = option(null); const isAssigned = x => x !== null && x !=

    11熱度

    3回答

    我在玩Maybe和Monad類型(Chaining,根據返回值應用條件函數,還返回鏈接函數失敗等錯誤消息)。所以它對我來說似乎就像我們可以通過使用任一monad實現同樣的和更多的事情。所以我的問題是這些之間的實際或概念差異?

    -3熱度

    1回答

    函數如何寫入Haskell中,該函數接收IO字符串並返回反轉的字符串。 rev :: IO String -> IO String rev s = ...

    1熱度

    1回答

    考慮如下: class Test m a where t :: Int -> m a instance Test [] Int where t i = [i] instance Test Maybe Int where t i | i == 0 = Nothing | otherwise = Just i main = do prin

    2熱度

    1回答

    我想用Monad變形金剛嵌套作家monad兩次。這裏是一個草圖: import Control.Monad.Identity import Control.Monad.Writer data Struct = S Bool instance Monoid Struct where mempty = S True mappend (S a) (S b) = S (a &

    0熱度

    1回答

    我試圖使用狀態單聲道的簡單變量,它的工作。但在這裏,似乎我正在嘗試混合IO和非IO。 打算有一個由Monad管理的數組。我想讀取和寫入這個數組。 似乎比我想象的更難。 funarray :: Map.Map String (IOArray Int Int) funarray = Map.empty storearray :: String -> (IOArray Int

    1熱度

    2回答

    考慮以下功能: foo = [1,2,3] >>= return . (*2) . (+1) 爲了更好的可讀性和邏輯,我想(*2)和(+1)移動我的純函數的返回的左側。我可以這樣實現這一點: infixr 9 <. (<.) :: (a -> b) -> (b -> c) -> (a -> c) (<.) f g = g . f bar = [1,2,3]

    1熱度

    2回答

    我正在學習Scala中的函數式編程,並且學習了術語monad。總之單子是: trait M[A] { def flatMap[B](f: A => M[B]): M[B] } def unit[A](x: A): M[A] 我知道monad只是一個基於上述2條規則的概念。我們能滿足許多​​單子在現實世界中,如List,Future .... 的只有一個問題,我不知道的是:爲什麼

    3熱度

    1回答

    我預計今年以評估3,但得到了一個錯誤,而不是: Idris> :let x = Just 2 Idris> 1 + !x (input):1:3-4:When checking an application of function Prelude.Interfaces.+: Type mismatch between Integer (Type of (_bindA