Tag: 哈斯克尔

Haskell Prelude中'const'的含义是什么?

通过Haskell前奏,我看到一个函数 const : const x _ = x 我似乎无法find有关此function的任何相关信息。 重点是什么? 任何人都可以举一个例子来说明这个函数可以用在哪里?

Haskell Array.Accelerate – forkOS错误

试图用gnuplot来绘制一些Data.Array.Accelerate计算的输出我遇到了一个奇怪的问题。 当通过解释器运行时,一切都很好,就像直接绘制Haskell数据或者只是打印Accelerate值一样,但是尝试绘制Accelerate数据失败。 给出的错误是forkOS_entry: interrupted 。 从那以后,我意识到我应该做更多的UNIX,并且在每个程序中做一件事(好)。 但我有兴趣找出为什么这个失败。 我在下面包含一个最小代码示例。 import Prelude hiding (zip,zipWith) import Graphics.Gnuplot.Simple import Data.Array.Accelerate — import Data.Array.Accelerate.Interpreter import Data.Array.Accelerate.CUDA f :: Vector Float -> Vector Float -> Acc (Vector Float) f xs ys = let xs' = use xs ys' = use ys in (zipWith (*) xs' ys') n=10::Int points = toList.run $ […]

当有fmap的时候,Haskell的地图有什么意义呢?

到处都试过用map , fmap也起作用了。 为什么Haskell的创build者觉得需要一个map函数? 难道这不就是目前所知的fmap , fmap可以从语言中删除吗?

使用TemplateHaskell列出名称空间中的所有名称

我想要一个TemplateHaskell函数variablesInScope :: Q [Name] ,它返回范围内所有variables的Name的列表。 TemplateHaskell显然有这个信息可用来实现像reify :: Name -> Q Info和lookupValueName :: String -> Q (Maybe Name)这样的函数。 我想要的function是否存在,我只是忽略了它? 或者可以很容易地build立?

为什么Haskell(有时)被称为“最佳命令式语言”?

(我希望这个问题是关于主题的 – 我试着寻找一个答案,但没有find一个明确的答案。如果这是恰当的话题或已经回答,请温和/删除它。) 我记得听过/读过关于Haskell几次被认为是最好的命令式语言的半开玩笑的评论,这听起来很奇怪,因为Haskell通常以其function特性而闻名。 所以我的问题是,Haskell有什么品质/特性(如果有的话)有理由certificateHaskell被认为是最好的命令式语言 – 或者实际上更像是一个笑话?

function性镜头

有人可以向我解释function镜头吗? 这是一个令人惊讶的困难的主题谷歌,我没有取得任何进展。 我所知道的是他们提供了类似的获取/设置function比OO。

好的Haskell编码标准

有人可以提供一个良好的Haskell编码标准的链接? 我已经find这个和这个 ,但是他们还不够全面。 更不用说HaskellWiki包含了像“谨慎使用类”和“定义符号中缀标识符”这样的“gem”应该只留给图书馆作者。

如何玩Haskell中的Control.Monad.Writer?

我是function编程的新手,最近在学习你一个Haskell的时候学习,但是当我阅读本章的时候 ,我被下面的程序困住了: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x]) multWithLog :: Writer [String] Int multWithLog = do a <- logNumber 3 b <- logNumber 5 return (a*b) 我把这些行保存在一个.hs文件中,但没有把它导入到我的ghci中, more1.hs:4:15: Not in scope: data constructor `Writer' Perhaps you meant `WriterT' (imported from Control.Monad.Writer) […]

Haskell网站开发的生态系统是什么?

受到这个问题和最近的事情的启发,我想知道Haskell web开发涉及到什么。 有没有Haskell网页框架或模板引擎? 如何托pipe一个Haskell网站工作,有适合的networking服务器? 对于通常在Web开发中常用的快速开发和基于原型的工作stream,Haskell是否太复杂? 有没有现有的Haskellnetworking应用程序的例子?

mtl,变形金刚,monads-fd,monadLib以及select的悖论

Hackage有几个monad变压器的软件包: mtl :Monad变压器库 变形金刚 :具体仿函数和单子变压器 monads-fd :Monad类,使用函数依赖关系 monad-tf :Monad类,使用types族 monadLib :monad变换器的集合。 mtl-tf :使用types族的Monad变换器库。 mmtl :模块化Monad变压器库 mtlx :带有types索引的Monad变换器库,提供“免费”拷贝。 compose-trans :可组合的monad变压器 (也许我错过了一些) 我们应该使用哪一个? mtl是Haskell平台中的一个,但是我一直听到reddit的说法,它并不冷静。 但无论如何,select有什么不好,这不是一件好事吗? 那么,我看到了例如数据访问者的作者必须使所有这些才能迎合stream行的select: data-accessor-monadLib库:monadLib monad的访问器函数 data-accessor-monads-fd库:使用Accessor访问monads-fd状态monad类中的状态 data-accessor-monads-tf库:使用Accessor访问monads-tf状态monadtypes系列中的状态 data-accessor-mtl库:使用Accessor访问mtl状态monad类中的状态 数据访问器或变换器库:使用访问器访问变换器状态单元中的状态 我想如果这样做,例如几个竞争的箭头包发展,我们可能会看到类似:勺子链接箭头变形金刚,勺子箭头monadLib,spoonklink-tf箭头变换器,spoonklink-tf箭头monadLib,… 然后我担心,如果spoonklink分叉,Hackage将用完磁盘空间。 🙂 问题: 为什么有这么多的monad变压器封装? 为什么mtl [考虑]不酷? 关键的区别是什么? 这些看似相互竞争的软件包大部分都是由Andy Gill编写的,由Ross Paterson维护。 这是否意味着这些软件包不是竞争,而是以某种方式一起工作? 安迪和罗斯是否认为他们自己的软件包已经过时了? 你应该使用哪一个?