标签: haskell

常见的Haskell运算符是否有明显的名称?

我正在读" 了解你是一个很好的Haskell,我从来不知道如何发音Haskell运算符.他们有"真实"的名字吗??

例如,你如何大声朗读这样的表达?

Just (+3) <*> Just 9
Run Code Online (Sandbox Code Playgroud)

我知道这>>=是"绑定",但其他人呢?由于Google不考虑非字母数字字符,因此很难进行有效的搜索...

我意识到你可以创建自己的运算符,所以当然不是所有运算符都可以有名称,但我希望常见的运算符(例如在Applicative或中定义的运算符Monad)必须具有名称...

haskell operators

196
推荐指数
5
解决办法
1万
查看次数

阅读GHC核心

核心是GHC的中间语言.阅读核心可以帮助您更好地了解您的计划的性能.有人问我关于阅读Core的文档或教程,但我找不到多少.

有哪些文档可供阅读GHC Core?

这是我到目前为止所发现的:

compiler-construction performance haskell ghc

190
推荐指数
3
解决办法
2万
查看次数

Haskell:将Int转换为String

我知道您可以将a转换String为数字read:

Prelude> read "3" :: Int
3
Prelude> read "3" :: Double 
3.0
Run Code Online (Sandbox Code Playgroud)

但是你如何抓住价值的String代表Int?

string int haskell casting

189
推荐指数
3
解决办法
13万
查看次数

Haskell中`data`和`newtype`之间的区别

我写这个有什么区别?

data Book = Book Int Int
Run Code Online (Sandbox Code Playgroud)

与

newtype Book = Book (Int, Int) -- "Book Int Int" is syntactically invalid
Run Code Online (Sandbox Code Playgroud)

haskell types type-systems newtype

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

GHC可以实现哪些优化可靠?

GHC有很多可以执行的优化,但我不知道它们是什么,也不知道它们在多大程度上被执行的可能性.

我的问题是:我可以期望每次或几乎可以应用哪些转换?如果我查看将要经常执行(评估)的一段代码,我的第一个想法是"嗯,也许我应该优化它",在这种情况下,我的第二个想法是,"甚至不要考虑它, GHC得到了这个"?

我正在阅读文章Stream Fusion:从列表到流到没有任何东西,以及他们用于将列表处理重写为不同形式的技术,GHC的正常优化将可靠地优化为简单的循环对我来说是新颖的.如何判断自己的程序何时符合这种优化条件?

GHC手册中有一些信息,但它只是回答问题的一部分.

编辑:我正在开始赏金.我想要的是一个低级转换列表,如lambda/let/case-floating,类型/构造函数/函数参数特化,严格性分析和拆箱,worker/wrapper,以及我遗漏的任何其他重要的GHC做的事情,以及输入和输出代码的解释和示例,以及理想情况下总效应大于其各部分之和的情况.理想情况下,有些人提到何时不会发生转变.我不期待对每个转换的新颖长度的解释,一些句子和内联单行代码示例就足够了(或者链接,如果它不是20页的科学论文),只要大图是在它结束时清楚.我希望能够查看一段代码,并能够很好地猜测它是否会编译成紧密循环,或者为什么不编译,或者我需要改变它来制作它.(我对像流融合这样的大优化框架(我只是阅读了一篇关于它的论文)感兴趣;更多的是那些编写这些框架的人所拥有的知识.)

optimization haskell ghc

177
推荐指数
3
解决办法
8824
查看次数

镜头,fclabels,数据访问器 - 用于结构访问和变异的库更好

至少有三个流行的库用于访问和操作记录字段.我所知道的是:数据访问器,fclabels和镜头.

我个人开始使用数据访问器,现在我正在使用它们.然而最近在haskell-cafe上有一个fclabels优越的意见.

因此,我对这三个(也许更多)库的比较感兴趣.

haskell record data-structures lenses

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

为什么在Haskell中将副作用建模为monad?

任何人都可以给出一些指针,说明为什么Haskell中的不纯计算被建模为monad?

我的意思是monad只是一个有4个操作的界面,那么建模副作用的原因是什么呢?

monads haskell functional-programming

164
推荐指数
5
解决办法
2万
查看次数

Haskell中多核编程的现状如何?

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

parallel-processing concurrency haskell functional-programming multicore

161
推荐指数
1
解决办法
1万
查看次数

Int和Integer有什么区别?

在Haskell中,a Int和an 之间有什么区别Integer?答案记录在哪里?

int haskell integer numbers bignum

161
推荐指数
6
解决办法
6万
查看次数

为什么不依赖键入?

我看到几个消息来源反映了"Haskell逐渐成为一种依赖型语言"的观点.暗示似乎是随着越来越多的语言扩展,Haskell正朝着这个方向漂移,但还没有.

基本上我想知道两件事.首先,很简单,"作为一种依赖型语言"究竟意味着什么?(希望没有太过技术性.)

第二个问题是......有什么缺点?我的意思是,人们知道我们正朝着这个方向前进,所以必须有一些优势.然而,我们还没有,所以必须有一些下行阻止人们一路走下去.我的印象是问题是复杂性急剧增加.但是,并不是真正了解依赖打字是什么,我不确定.

我所知道的是,每次我开始阅读一种依赖类型的编程语言时,文本都是完全不可理解的......大概这就是问题所在.(?)

haskell type-systems dependent-type

159
推荐指数
4
解决办法
1万
查看次数