187得票8回答
为什么Haskell中将副作用建模为单子?

有没有人能够指导一下为什么Haskell中的不纯计算被建模为monad呢? 我的意思是,monad只是一个具有4个操作的接口,那么将副作用建模到其中的推理是什么呢?

178得票1回答
镜头,fclabels,data-accessor - 哪个用于结构访问和修改的库更好?

至少有三种流行的库可用于访问和操作记录字段。我所知道的有:data-accessor、fclabels 和 lenses。 个人而言,我开始使用 data-accessor 并一直在使用它们。然而最近在 haskell-cafe 上出现了 fclabels 更优秀的观点。 因此,我对这三个...

172得票2回答
为什么λ演算最优求值器能够在没有公式的情况下计算大型模指数?

Church数是将自然数编码为函数的一种方法。(\ f x → (f x)) -- church number 1 (\ f x → (f (f (f x)))) -- church number 3 (\ f x → (f (f (f (f x))))) --...

171得票7回答
foldr和foldl(或foldl')的含义及影响。

首先,我正在阅读的《Real World Haskell》指出永远不要使用foldl,而是使用foldl',因此我相信它。 但是我对何时使用foldr和foldl'感到模糊。虽然我可以看到它们的不同工作结构,但我太蠢了,不理解哪个“更好”。我想对我来说似乎并不重要使用哪个,因为它们都会产生相...

169得票4回答
为什么Haskell中有"data"和"newtype"?

看起来,newtype定义只是遵循一些限制(例如,仅有一个构造函数)的data定义,并且由于这些限制,运行时系统可以更高效地处理newtype。对于未定义值的模式匹配处理稍有不同。 但假设Haskell只知道data定义,而不知道newtype:编译器是否能够自动找出给定数据定义是否遵循这些...

169得票4回答
为什么不使用依赖类型?

我看到几个来源都表达了这样的观点:“Haskell正在逐渐成为一个依赖类型的语言”。这意味着随着越来越多的语言扩展,Haskell正朝着这个方向漂移,但还没有完全到达。 基本上有两件事我想知道。首先是,“成为一个依赖类型的语言”实际上意味着什么?(希望不要过于技术化。) 第二个问题是......

165得票5回答
在GHCi中使用多行命令

我在ghci中输入多行命令时遇到问题。 以下两行代码可以从文件中运行:addTwo :: Int -> Int -> Int addTwo x y = x + y 但是当我在ghci中输入时,出现了一个错误:<interactive>:1:1: error: ...

164得票3回答
Cabal和Stack有什么区别?

昨天我了解了一种名为Stack的新Haskell工具。乍一看,它似乎与Cabal的功能类似。那么,它们之间有什么区别呢?Stack是否可以替代Cabal?在哪些情况下应该使用Stack而不是Cabal?Stack能做到Cabal做不到的事情有哪些?

164得票7回答
在Haskell中,“mod”和“rem”的区别是什么?

mod 和 rem 在 Haskell 中有什么区别? 两者似乎都会产生相同的结果。*Main> mod 2 3 2 *Main> rem 2 3 2 *Main> mod 10 5 0 *Main> rem 10 5 0 *Main> mod 1 0 *** ...

163得票1回答
Haskell中多核编程的现状是什么?

在Haskell中,多核编程的现状如何?现在有哪些项目、工具和库可用?有哪些经验报告?