小编bpa*_*rni的帖子

对功能列表的应用排序如何工作?

我正在学习Haskell和Learn You a Haskell指南,并且我在一系列函数中坚持使用应用程序排序的例子.第11章:Functors,Applicative Functors和Monoids将sequenceA定义为:

sequenceA :: (Applicative f) => [f a] -> f [a]
sequenceA [] = pure []
sequenceA (x:xs) = (:) <$> x <*> sequenceA xs
Run Code Online (Sandbox Code Playgroud)

我对sequenceA的这个示例用法感到有点困惑:

> sequenceA [(+3),(+2),(+1)] 3
[6,5,4]
Run Code Online (Sandbox Code Playgroud)

我已尽可能手动扩展应用程序,我认为是正确的:

(:) <$> (+3) <*> sequenceA [(+2), (+1)]
(:) <$> (+3) <*> (:) <$> (+2) <*> (:) <$> (+1) <*> sequenceA []
(:) <$> (+3) <*> (:) <$> (+2) <*> (:) <$> (+1) <*> pure []
(:) <$> (+3) <*> (:) …
Run Code Online (Sandbox Code Playgroud)

haskell

6
推荐指数
1
解决办法
777
查看次数

真实世界 Haskell,第 5 章,SimpleJSON 编译错误

根据另一个问题,Real World Haskell 的部分内容现已过时。我只阅读了第 5 章,但是我在将一个简单示例编译为可执行二进制文件时遇到了问题。

给出了两个模块:

module SimpleJSON
    (
      JValue(..)
    , getString
    , getInt
    , getDouble
    , getBool
    , getObject
    , getArray
    , isNull
    ) where

data JValue = JString String
            | JNumber Double
            | JBool   Bool
            | JNull
            | JObject [ (String, JValue) ]
            | JArray [ JValue ]
              deriving (Eq, Ord, Show)

getString :: JValue -> Maybe String
getString (JString s) = Just s
getString _           = Nothing

getInt (JNumber n)    = Just (truncate n) …
Run Code Online (Sandbox Code Playgroud)

haskell ghc

2
推荐指数
1
解决办法
291
查看次数

标签 统计

haskell ×2

ghc ×1