Haskell并行与并发编程

来源:IT168  责任编辑:李志  

Haskell Haskell是一种纯函数式编程语言,它的命名源自美国数学家Haskell Brooks Curry,他在数学逻辑方面上的工作使得函数式编程语言有了广泛的基础。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以Lambda-Calculi(兰姆达演算)为基础发展而来.这也是为什么Haskell语言以希腊字母Lambda作为自己的标志.Haskell语言的最重要的两个应用是Glasgow Haskell Compliler(GHC)和Hugs(一个Haskell语言的编译器).特式是利用很简单的叙述就可以完成 Linked List、矩阵等数据结构。发展在80年代末已经出现了一些函数式编程语言,它们各有优缺点.为了使它们在科研上有一种统一的研究和发展的基础,应该有一种标准化的全新的语言使函数式编程语言在此基础上实现统一。接下来有人想以Miranda作为此项工作的出发点(而Miranda的开发者却对此项工作并不感兴趣)。就在这种背景下Haskell 1.0于1990年被公布。这种语言的最新版本是在原来版本的基础上经过修改的变体(Haskell-98-Standard 于1999年)。Haskell是现如今最广泛被用于研究的一种函数语言。现在以Haskell为基础的语言衍生物有很多,它们是:并行Haskell,扩充Haskell(旧名Goffin),Eager Haskell,Eden,DNA-Hakell 和面向对象的变体(Haskell+,O'Haskell,Mondrian)。另外Haskell还被作为在新语言设计时的样板,例如Python中的Lambda标记语句www.zgxue.com防采集请勿采集本网。

如何学习 Haskell

C比java涉及的更底层一些,如果你是计算机专业,对程序非常感兴趣,C是必须熟悉的。Java的功能也很强大,编程速度快,应用广泛,有很多开源项目支持,在大型Web领域,一直是首选。目前Java和C的

并行与并发编程、Yesod书这两本尤其推荐。Pearls of Functional Algorithm Design Purely Functional Data Structures 纯函数式的数据结构和算法经典。Chris Okasaki的PFDS不管是搞Haskell还是搞OCaml/...

TensorFlow编程接口包括Python和C++,Java,Go,R和Haskell语言的接口也在alpha版中支持。另外,TensorFlow还支持谷歌和亚马逊的云环境。TensorFlow的0.12版本支持Windows 7,8,Server 2016系统。由于采用

Haskell语言 主要用途

很多语言,像C、Java、Python和函数式编程在分布式系统开发中应用广泛,分布式系统开发的关键需求是并行执行和并发性。人工智能和数学计算是函数式编程的又一应用领域,Haskell的应用同样如此。

现在以Haskell为基础的语言衍生物有很多,它们是:并行Haskell,扩充Haskell(旧名Goffin),Eager Haskell,Eden,DNA-Hakell 和面向对象的变体(Haskell+,O'Haskell,Mondrian)。另外Haskell还被作为在新语言设计...

那么多天都没人回答,那就我来答好了: Yesod,一个web后台框架。Parsec,一个很强大的文法parse库,可以去看write yourself a scheme in 48 hours。Repa,高性能CPU并行Strategies,并行和并发计算库。

如何理解erlang的分布式和并发

模块化和并行性 模块应该是基本软件元素(操作、类型、变量等)的组合,用于重用、扩展服务。“函数式编程的主要价值在于极大地提高程序的模块化程度,”Huges在函数式编程(函数式编程经典)的解释中说。高阶

首先Erlang的虚拟机是C写的,其次诸如Haskell、OCaml+JoCaml,以及Python的PyPy,其实都能提供不弱于Erlang的并发能力。同时Erlang在顺序计算上的性能也不佳,甚至不能超过Python、Lua这类脚本语言(也许...

如何学习 Haskell

在学Haskell之前,我就从来没有理解过Python语言对函数式编程的支持。第二,它的惰性让我们可以写出其它语言很难做到的事。比如求第i个素数,在Haskell我是这样写的,primeAt i=(filter isPrime[2.])!(i-1...

C好还是Java!!!

C比java涉及的更底层一些,如果你是计算机专业,对程序非常感兴趣,C是必须熟悉的。Java的功能也很强大,编程速度快,应用广泛,有很多开源项目支持,在大型Web领域,一直是首选。目前Java和C的...

TensorFlow的优势和缺点有哪些

TensorFlow编程接口包括Python和C++,Java,Go,R和Haskell语言的接口也在alpha版中支持。另外,TensorFlow还支持谷歌和亚马逊的云环境。TensorFlow的0.12版本支持Windows 7,8,Server 2016系统。由于采用...

如何选择编程语言

很多语言,像C、Java、Python和...函数式编程在分布式系统开发中应用广泛,分布式系统开发的关键需求是并行执行和并发性。人工智能和数学计算是函数式编程的又一应用领域,Haskell的应用同样如此。

Haskell 有哪些威力十足的库

那么多天都没人回答,那就我来答好了: Yesod,一个web后台框架。Parsec,一个很强大的文法parse库,可以去看write yourself a scheme in 48 hours。Repa,高性能CPU并行...Strategies,并行和并发计算库。

函数式编程有什么弊端?

模块化和并行性 模块应该是基本软件元素(操作、类型、变量等)的组合,用于重用、扩展服务。“函数式编程的主要价值在于极大地提高程序的模块化程度,”Huges在函数式编程(函数式编程经典)的解释中说。高阶...

如何掌握程序语言

很多语言没有新的东西,为了占据一方土地,就号称自己适合某种特定的任务,比如文本处理,数据库查询,Web编程,游戏设计,并行计算,或者别的什么专门的领域。但是我们真的需要不同的语言来干这些事情吗...

Haskell的模块部分,和其他语言并无二致。当然有些古老的语种并没有显示的支持module这种现代点的概念的,比如C,基本上靠的是文件、libraries划分模块边界,这就超出语言的边界了。像http://www.c2lang.org/docs/c2lang_design.pdf 这种语言就提供了一种新的选择,C2这个语言是在LLVM上搞的,看它的设计,感觉已经把C改造的比较现代了,其中就包括module的支持。Haskell的module也像一个函数,基本语法是module Funny(func1,func2,.)where,而func1,fun2就是where该模块后面定义的一堆函数了,一种整个module就是一个表达式的感觉有木有;引用的话,import Funny;import Funny(func1,func2);import Funny hiding(func2);import qualified Funny;import qualified Funny as F;语法都是为了解决名称空间的问题(程序员淡淡的忧伤,这是一个看名字的世界)。至于后面的各种标准库,我就不怎么感兴趣了,就是查文档+熟练的过程。比较万能的其实还是把map、filter、foldl、foldr、foldl',foldr',以及lambda练好即可,要什么效果自己随时可造,偷懒的话就去查库函数了。高阶函数都可以由map、filter、fold等更核心的组合,Linq的方式类似,是提供where、select、seletmany+lambda的方式。对比下C#、C++、Haskell三家,感觉还是Linq的方式最自然,扩展方法也利于自己随时按需造高阶函数。【教材】Programming in Haskell(FP101x教材)Learn You a Haskell for Great Good!(趣学指南)Thinking Functionally with HaskellHaskell:The Craft of Functional Programming(3rd Edition)覆盖基本Haskell语法,适合入门。尤其推荐第一本,篇幅短,内容精炼,作为第一本Haskell书比趣学指南好。Real World HaskellParallel and Concurrent Programming in HaskellYesod Web Framework Book-Version 1.4Haskell Data Analysis CookbookHaskell Financial Data Modeling and Predictive Analytics注重工程实践。Real World Haskell的书覆盖面广,但是太旧,不少库和语言的变化没有包含;并行与并发编程、Yesod书这两本尤其推荐。Pearls of Functional Algorithm DesignPurely Functional Data Structures纯函数式的数据结构和算法经典。Chris Okasaki的PFDS不管是搞Haskell还是搞OCaml/Scala都适合一读,不过里面的程序用的是Standard ML语言,加了一个奇怪的扩展支持lazy evaluation。Simon Peyton Jones:book(Implementing functional languages:a tutorial)实现一门简单的惰性纯函数式语言的详尽教材。Basic Category Theory for Computer ScientistsConceptual Mathematics A First Introduction to Categories教范畴论的我能找到的最简单的书。Erik Meijer在今年可能开设一门范畴论的MOOC,教材采用后一本。(更新:Meijer没开课内容来自www.zgxue.com请勿采集。


  • 写字楼人工访客一体机证件授权系统
  • 锐捷云桌面EST协议之RUTP传输技术白皮书
  • 活动直播流媒体解决方案
  • 桌面云优秀存储应该具备哪些特质?
  • 锐捷云桌面VDI分布式存储数据布局技术白皮书
  • 疯狂Java讲义(第2版)
  • 微信公众平台搭建与开发揭秘
  • iPadMini使用手册
  • HTML5移动Web开发指南
  • 微信公众平台应用开发实战
  • 如何学习 Haskell
  • Haskell语言 主要用途
  • 如何理解erlang的分布式和并发
  • 如何学习 Haskell
  • C好还是Java!!!
  • TensorFlow的优势和缺点有哪些
  • 如何选择编程语言
  • Haskell 有哪些威力十足的库
  • 函数式编程有什么弊端?
  • 如何掌握程序语言
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved