我的(尝试的)iterateM 实现有什么问题?
我想实现一个函数 iterateM,其类型如下所示: iterateM :: Monad m => (a -> m a) -> a -> [m a] 但是,我首先编写这个函数: iterateM f x = f x >>…
为什么我会得到“不明确的类型变量”这里有错误吗?
import Data.Monoid times :: Monoid a => Int -> a -> a times i = mconcat . replicate i main = print $ times 5 5 此代码给出以下错误: Ambiguou…
是运算符 && Haskell 严格吗?
例如,我有一个操作 fnB :: a -> Bool 在 fnA :: Bool 返回 False 之前没有任何意义。在 CI 中,可以将这两个操作组合在一个 if 块中: if( fnA && fn…
学习 Haskell 是为了学习 Scala
我读过一些问题,例如 Scala vs Haskell,讨论两种语言的优点或学习哪种语言,但我已经知道我想学习 Scala。我在大学时是一名Java程序员,现在主要使…
Haskell http 响应结果不可读
import Network.URI import Network.HTTP import Network.Browser get :: URI -> IO String get uri = do let req = Request uri GET [] "" resp <- b…
如何在 Haskell 中延迟加载列表以外的数据类型
我开始了解 Haskell 的强大功能以及如何通过以下方式利用延迟加载 main = do s <- getContents let r = map processIt (lines s) putStr (unlines r) …
Haskell“伪函子”
我有一个多项式, data Poly a = Poly [a] 我希望能够执行类似 fmap (take 3) polynomial 的操作,但我不能,因为 Poly 并不是真正的函子,因为我在 f…
如何在 Windows 上正确捕获和打印 stderr 和/或 stdout?
感谢哈马尔,我开始在 Windows 上运行作业管理服务器。目的是 UNIX 端守护进程将向 Windows 端发送命令并从 Windows 端接收 stderr/stdout。问题是,…
删除元组中的第二个元素
我有一个看起来像这样的元组列表。 [ [(1,True),(2,True)] , [(3,False),(4,False),(5,False)] ] 我的目标是让[1,2,3,4,5]摆脱困境。 我尝试使用 map …
为什么 Haskell 不允许这种声明?
我知道 Functor 和 Applicative 应该是 Monad 的超类,但由于历史原因并非如此。但是,为什么不能将 Monad 声明为 Functor 的实例?这将具有大致相同…
无法在 Windows 上使用 cabal 安装 glib - 在配置步骤中
在 Windows 7 x64 上, 我尝试过: 1. install gtk+ all in one bundle 2.16 2. add MinGW's bin address to PATH Environment variables 3. add GTK+…
为什么使 Vector 成为 Functor、Monad、Applicative、Alternative、Foldable 和 Traversable 实例的函数速度很慢?
vector 0.8 版的变更日志列出了以下更改并带有警告: 函子、Monad、应用性、替代性、可折叠和可遍历 盒装向量的实例(警告:它们往往很慢并且 仅为了…