Questions tagged «haskell»

Haskell是一种功能性编程语言,具有强大的静态类型,惰性评估,广泛的并行性和并发支持以及独特的抽象功能。

5
不是函子/函数/应用/单子的好例子?
在向某人解释什么是类型类X时,我努力地找到了恰好是X的数据结构的良好示例。 因此,我要求提供以下示例: 不是Functor的类型构造函数。 类型构造函数,是Functor,但不是Applicative。 类型构造器,它是一个Applicative,但不是Monad。 类型构造器,它是Monad。 我认为到处都有很多Monad的例子,但是与以前的例子有一些联系的Monad很好的例子可以使情况更完整。 我正在寻找彼此相似的示例,仅在对于属于特定类型类的重要方面有所不同。 如果能够在这个层次结构中的某个地方(在Applicative和Monad之间找到一个)Arrow的示例,那也很棒!

5
常见的Haskell运算符有明显的名称吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 2年前关闭。 改善这个问题 我正在阅读Learn Has a Haskell for Great Good,但我不知道该如何发音Haskell运算符。他们有“真实”名称吗?? 例如,如何朗读这样的表达式? Just (+3) <*> Just 9 我知道那>>=是“绑定”,但是其他人呢?由于Google不考虑非字母数字字符,因此很难进行有效的搜索... 我意识到您可以创建自己的运算符,因此当然并非所有运算符都可以具有名称,但是我希望常见的运算符(例如,在Applicative或中定义的运算符Monad)必须具有名称...
204 haskell  operators 


4
阅读GHC核心
核心是GHC的中间语言。Reading Core可以帮助您更好地了解程序的性能。有人要求我提供有关阅读Core的文档或教程,但找不到很多。 哪些文档可用于阅读GHC Core? 到目前为止,这是我发现的内容: 与C一样快地编写Haskell:利用严格性,惰性和递归 Haskell速度与C一样快:在高海拔下工作可获得低水平性能 RWH:第25章。分析和优化 CUFP上的高性能Haskell演讲(幻灯片65-80)


3
GHC可以可靠地执行哪些优化?
GHC可以执行很多优化,但是我不知道它们全都有,也不知道它们在多大程度上会在什么情况下执行。 我的问题是:我希望每次或几乎都会应用哪些转换?如果我查看一段要经常执行(评估)的代码,而我的第一个念头是“嗯,也许我应该优化它”,在这种情况下,我的第二个念头应该是:“甚至不要考虑它, GHC收到了这个?” 我正在阅读论文《流融合:从列表到流再到什么都没有》,而他们使用的将列表处理重写为另一种形式的技术对我来说是新颖的,GHC的常规优化然后可以将其可靠地优化为简单的循环。我如何知道自己的程序何时可以进行这种优化? 《 GHC手册》中有一些信息,但这只是回答问题的一部分。 编辑:我开始赏金。我想要的是较低级转换的列表,例如lambda / let / case-floating,type / constructor / function参数专门化,严格性分析和拆箱,worker / wrapper以及我遗漏的其他重要GHC所做的其他事情,以及输入和输出代码的说明和示例,以及理想情况下总效果超过其各个部分之和的情况的说明。理想情况下,提到何时不进行转换发生。我不希望每个转换都有新颖的解释,只要大的图景就可以用几个句子和内联的单行代码示例就足够了(或者链接,如果不是到二十页的科学论文)。最后清除。我希望能够看一段代码,并能够很好地猜测它是否可以编译成一个紧密的循环,或者为什么不编译,或者我必须进行更改以使其得以实现。(我对诸如流融合之类的大型优化框架不那么感兴趣(我只是读过一篇文章),而对编写这些框架的人所拥有的知识则没有那么大的兴趣。)




13
如何在Haskell中分割字符串?
有没有在Haskell中拆分字符串的标准方法? lines并且words可以很好地在空格或换行符上分割,但是肯定有一种在逗号上分割的标准方法吗? 我在Hoogle上找不到。 具体而言,我正在寻找的东西,其中split "," "my,comma,separated,list"的回报["my","comma","separated","list"]。
163 string  haskell 

4
为什么不依赖输入?
我已经看到一些消息来源回应了这样的观点:“ Haskell正在逐渐成为一种依赖类型的语言”。这似乎意味着,随着越来越多的语言扩展,Haskell朝着这个总体方向发展,但是还不存在。 我基本上想知道两件事。首先,很简单,“成为依赖类型的语言”实际上是什么意思?(希望不要太过专业。) 第二个问题是...缺点是什么?我的意思是,人们知道我们正朝着这个方向前进,因此必须有一定的优势。但是,我们还没有到那儿,因此必须存在一些不利因素,阻止人们一路前进。我觉得问题是复杂性急剧增加。但是,我不确定是否真正了解依存类型是什么。 我所知道的是,每当我开始阅读有关依赖类型的编程语言的内容时,文本都是完全难以理解的……大概就是问题所在。(?)


7
如何跨多行在ghci中定义函数?
我正在尝试定义ghci中跨越多行的任何简单函数,以以下示例为例: let abs n | n >= 0 = n | otherwise = -n 到目前为止,我已经尝试过在第一行之后按Enter键: Prelude> let abs n | n >= 0 = n Prelude> | otherwise = -n <interactive>:1:0: parse error on input `|' 我也尝试过使用:{and :}命令,但距离并不远: Prelude> :{ unknown command ':{' use :? for help. 我在Linux上使用适用于Haskell 98的GHC Interactive版本6.6,我缺少什么?
161 haskell  ghci 


2
zygohistomorphic prepromorphisms在现实世界中的应用
是的,这些: {-#LANGUAGE TypeOperators, RankNTypes #-} import Control.Morphism.Zygo import Control.Morphism.Prepro import Control.Morphism.Histo import Control.Functor.Algebra import Control.Functor.Extras import Control.Functor.Fix import Control.Comonad.Cofree zygohistomorphic_prepromorphism :: Functor f => Algebra f b -> GAlgebra f (ZygoT (Cofree f) b) a -> (f :~> f) -> FixF f -> a zygohistomorphic_prepromorphism f = g_prepro (distZygoT (liftAlgebra …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.