FUNCTION LANGUAGE

  这是一类语言,叫做函数型程序设计语言。是一种非常高级的语言。一种基于λ演算和在70年代后期才发展起来的新语言类型。大多数程序设计语言明显地规定要执行操作的次序。次序的详细规定是很需要的,因为语言的语句对程序的变量有“作用”,如果改变这些作用的次序,就可以改变产生的最后值。但是函数型语言却没有这种性质。在这个意义上,函数型语言能建立可计算性的数学公式模型。让我们来看一个简单的例子:   qsort :: [a] -> [a] | Ord a   qsort [] = []   qsort [a:xs] = qsort [x // x<-xs | x="a]" | x<-xs // [x qsort ++ [a]>     这段程序就是快速排序的代码,你看有多么简洁,并且它的这个qsort可以对任何类型的数据进行排序(只要这种数据可以比较大小)。想读懂上面的程序么?那么下载下面的clean, 或者haskell,好好研究吧,祝你有新的发现。   Clean   http://www.cs.kun.nl/~clean/并行的函数型语言,可以把源程序编译成exe文件,带有丰富的库,从tcp/ip, 到界面设计,到游戏开发,无一不全。   Haskell   http://www.haskell.org/hugs/hugs是haskell的免费编译器,语法和clean相似,不过是解释执行,因此易于学习。   O'Caml   http://www.ocaml.org/又一个函数型语言,速度很快,编译出来的程序速度和用C做出来的差不多快。   Mozart OZ   http://www.mozart-oz.org/mozart oz 是具有魔力的语言。它融合了目前几种流行的程序设计思想,我们叫它多范式语言。它是面向对象的语言,它是函数型的语言,它是约束逻辑(constraint)的语言,它是并发式的语言,它还是分布式的语言,几句话很难概括它的功能。最好去它的网站看看吧,下载一个慢慢研究? 他使用emacs作为开发界面,因此如果你想在windows下使用本语言,首先需要安装emacs for windows(也可以在mozart的网上找到,也可以去www.gnus.org去找,也可以安装xemacs), 如果你安装了emacs 那么你也就同时获得了emacs lisp, 呵呵,收获不小。 为了提起您的兴趣,请思考如下的问题如何编程解决,然后你可以在mozart中找到惊人简单的解决方案。 15个人每天出去玩,每天分为5组,每组3人,玩一个星期,使得任何两个人都曾经在一组中玩过,你如何安排?   J software   http://www.jsoftware.com/不要和java搞混淆了。J是一种面向阵列的语言,也就是说矢量,矩阵,以及高次数组都是它的最基本的数据类型,J中引入了大批量的运算符,以及独特的算式分析方法,大幅度的扩展了数学算式的表达能力。 例如如果你要算从1加到100, 用c怎么做? J的程序是:+/i.100 对,就这么短,一个表达式解决了问题,事实上,使用表达式编写出来的程序异常简洁,虽然初看上去很难读懂,一旦掌握了J语言,你就会发现,原来你可以用只有c语言1/20的字符表达同样的功能。   FORTH   http://cdtzx.51.net/pimage/www.jsoftware.comforth是一种可扩展的,交互式的语言。最初为小型的嵌入式电脑设计的,现在它几乎可以在任何主流的芯片上运行。 在电子表格,专家系统, 多用户数据库,和分布式实时控制系统中有广泛的应用。 表面来看,forth是一种基于堆栈的概念机。例如如果要计算 (3+4)*5 ,我们的程序就是:3 4 + 5 * . 首先把3和4入堆栈,然后调用+子程序,+把堆栈的最顶上两个元素取出(也就是3和4)进行加法运算,然后把结果入堆栈,然后把5入堆栈,然后调用*子程序,把最顶的2个元素,也就是7和5取出,并进行乘法运算,然后把结果入堆栈,最后的.把结果从堆栈中取出。 事实上这是一种简单有效的概念机。当然forth远远不止这些,它有什么样的功能,就由你去发掘了。   LOGO   被称为最佳的启蒙语言,事实上它的功能远远不止启蒙这么简单。一切别的语言能够完成的它也能够完成,只是更加简洁一些,通常logo是使用lisp编写的,我们就可以想象它的高度灵活性了。   MSW Logo   http://www.softronix.com/这个网站还有个逻辑数字电路模拟的软件,很有意思,再也不用为什么触发器 门电路之类的发愁了。   Star Logo   http://www.media.mit.edu/starlogostarlogo的网站如是说: StarLogo是一个可以编程的建模环境,用来研究分散系统的运行机制。所谓分散系统是指:没有组织者而组织,没有协调者而协调的系统。使用StarLogo你可以对许多现实世界中的现象进行建模并且观察研究,例如鸟群、交通、蚂蚁以及市场经济。 StarLogo是一种特殊的Logo语言,和传统的Logo语言一样,你可以通过向海龟发命令来作图。除此之外,Starlogo容许你并行的控制上千个海龟,并且为这些海龟设定不同的行为模式。StarLogo非常适合于研究人工生命。 本文转自 http://blog.csdn.net/kustone/archive/2007/10/19/1831965.aspx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值