arrows

    12熱度

    2回答

    我有兩個密切相關的問題: 首先,如何能在Haskell的箭類建模/在阿格達代表? class Arrow a where arr :: (b -> c) -> a b c (>>>) :: a b c -> a c d -> a b d first :: a b c -> a (b,d) (c,d) second :: a b c -> a (d,b

    3熱度

    2回答

    考慮 foldr (\x (a,b) -> (a || x==2, b || x==7)) (False,False) [1..6] --(True,False) 忽略了一個事實,這可以很容易地使用elem寫的,我有我可以採用Arrow語法簡化拉姆達的強烈的感覺,我只是無法得到它的權利。 這個lambda可以用箭頭簡化嗎?你有什麼關於如何「看」箭頭可能工作的一般提示,以及如何找到正確的表達方

    17熱度

    3回答

    我對Haskell中的計算模型非常感興趣。有幾個資源將monad描述爲「可組合計算」,並將箭頭描述爲「計算的抽象視圖」。我從來沒有見過用這種方式描述過的monoids,functors或applicative functors。他們似乎缺乏必要的結構。 我覺得這個想法很有趣,並想知道是否有其他構造做類似的事情。如果是這樣,我可以使用哪些資源來熟悉它們? Hackage上有沒有可能派上用場的軟件包?

    11熱度

    2回答

    我剛剛閱讀的文章Creative uses of monads,這是很有趣的想法和引用擁擠,所以我很好奇:箭頭呢? 我不是在尋找關於個人意見或基準或「標準」用途的參考(如在monads vs arrows或help understanding arrows in haskell中),而是尋找智能和/或非平凡應用程序的引用列表(可能在研究論文中)? 。謝謝。

    3熱度

    1回答

    如果我有以下兩種Kleisli箭頭: stdoutProcessA :: Kleisli Maybe String (IO String) writeToFileA :: Kleisli Maybe (FilePath, String) (IO()) 我希望能夠寫成才,如: compile = proc src -> do output <- stdoutProcessA -< "

    1熱度

    1回答

    在此之後page scraping tutorial筆者得到所有圖片的集合頁面上進行如下: css :: ArrowXml a => String -> a XmlTree XmlTree css tag = multi (hasName tag) images tree = tree >>> css "img" >>> getAttrValue "src" 如何我只得到,比如,頁面上的

    20熱度

    2回答

    爲ArrowLoop函數實例包含 loop :: ((b,d) -> (c,d)) -> (b -> c) loop f b = let (c,d) = f (b,d) in c 首先,我有簽名一個問題:我們怎麼可能從(b,d) -> (c,d)得到b -> c?我的意思是,產生的元組中的c可能取決於輸入的兩個元素,怎樣才能「切斷」d的影響? 其次我不明白let如何在這裏工作。不包含(c,d

    14熱度

    1回答

    我正在嘗試與箭頭合作&,並且遇到了一些困難。我有一個上下文,我需要一個Arrow [a] [b],我想寫一個Arrow a b並將其映射/排列在箭頭內,即la mapM。具體來說,箭頭是一個Hakyll Compiler,但我認爲這對於答案沒有多大意義。 鑑於箭頭 myInnerArrow :: Arrow a => a b c 我怎樣才能解除這種成箭頭 myOuterArrow :: Arr

    9熱度

    2回答

    我試圖找到一種方法來將正常的遞歸表示法如 翻譯爲| fib |函數在箭頭下面,儘可能多地保留了遞歸符號的結構。另外我會 喜歡檢查箭頭。爲此,我創建含有 構造爲每個箭頭{..}類數據類型: FIB: fib 0 = 0 fib 1 = 1 fib n = fib (n-2) + fib (n-1) 我的 - [R的數據類型,該數據類型實例包括映射 到適當的構造: data R x y whe

    5熱度

    5回答

    我在尋找函數,應用函子...我不知道如何到達我想要的位置,但我有這樣的感覺,應該讓我更接近。 有一個簡單的方法,使map -alike只適用於2元組的第一個元素?從Control.Arrow以first和使用Arrow (->),該做的伎倆很好: map . first :: (b -> c) -> [(b, d)] -> [(c, d)] 我唯一擔心的是,我還沒有獲得對箭真正的直覺,所以我可