haskell是什么语言和C语言有什么区别?

如题所述

Haskell是一种纯函数式编程语言.TIOBE 于今日公布了2012年6月编程语言指数排行榜。排名前三的语言是:C 、Java 和 C++。Objective-C 势头依旧强劲。和5月份的Top 10相比,PHP 和 Javascript 都 下降了 1 位,Visual Basic 和 Ruby 均上升了 1 位。 我们在上个月问了下一个大受欢迎的语言会是哪种语言,我们也说到了一些候选语言,诸如:Scala、Erlang 和 Clojure。下一个新热门语言将是出自函数式编程语言的迹象更加明显了。还有一种函数式编程语言在上个月没有提到,就是 Haskell。在本月指数排名中,Haskell 从地35位上升至第25位。从 TIOBE 趋势图上来看,Haskell (从2003年开始)一直在持续上升,在2006、2010 和 2012年分别达到其最好排名。Haskell的趋势看起来很有前途。
所以学习haskell还是很有必要的,如果你懂c的 话haskell学起来不难的 ,haskell英文资料多,中文的貌似不多,你可以去haskell中文社区haskellcn.com看看
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-23
1)haskell是什么语言?
Haskell是一种标准化的、通用纯函数式编程语言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家Haskell Brooks Curry,他在数学逻辑方面的工作使得函数式编程语言有了广泛的基础。在Haskell中,函数是一等公民。作为函数式编程语言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算(Lambda-Calculus)为基础发展而来。具有“证明即程序、结论公式即程序类型”的特征。这也是Haskell语言以希腊字母「λ」(Lambda)作为自己标志的原因。
2)haskell和C语言有什么区别?
区别非常大。haskell是函数式编程语言,C属于过程式编程语言。
1,此函数非彼函数。
haskell里函数是first class,换句话说一个函数是可以当作其他函数的返回值
C 里边函数是third class,不能作为其他函数返回值,不能当其他函数的参数。
2,函数式语言通有的特性是parameter polymorphic,通俗点说你用c写了个"int quickSort(int arr[])",那这函数就只能用来比较int,但是函数式语言你就能写quickSort(aList, aMethod), 其中aList是任意类型用来排序的list, aMethod是用来判断该类型关系的函数,这样能对所有类型排序。
3,函数式语言不存在变量,只能出于方便起见声明常数。刚开始你给几个参数,然后函数之间互相调用,然后给你一个结果,这就是函数式语言. 同时没变量也就没有循环,想重复就得递归。可想而知并不是所有我们想做的东西都可以用递归解决的,所以在很多需要特殊数据结构的地方函数式语言很不好使,比如说symbol table。
4,函数式语言里允许有匿名函数(大函数里套小函数,小函数里套小小函数,大伙都没有名字),这就需要创造cloures进行deep binding,要不然就不知道匿名函数里的非本地引用在哪了。C里边没有cloures,用全局变量能达到相同效果,不过全局变量容易把程序弄乱,少用。
5, 学函数式语言能让你从新的角度思考编程,很有启发性。
相似回答