本人小白。学习Mathematica两个月。
我说的不是这个数学软件,而是此软件自带的编程语言,我觉得此语言表达能力异常强大,模式匹配等特性可以使代码写得非常短。但是此语言现在貌似仍然局限在Mathematica系统内部。
问:此语言和其他主流语言比起来优缺点在哪?以后Mathematica有没有可能跳出Wolfram的封闭体系得到更广泛的应用?
*****************************************************************************************************************************************
没想到我的这个提问已经快要一年了,现在我来自己回答下。
我本人在入门Mathematica的时候没有多少关于其它语言的经验,仅仅是自学过一点点python,然后在学校接触了C(水平大概在求1+2+.......+99+100的程度),这应该是值得庆幸的地方,因为许多习惯于传统语言(主要是过程式)的人在使用Mathematica时都会非常的不适应。这一年来我一直都在玩Mathematica,水平可能仍停留在入门阶段但是对这个呆萌的系统的认识肯定比一年前要多一些。现在我把回答的重点集中在这门语言的独特之处。
翻开任何一本国内的Mathematica书籍,行文过程大概都是这样的:怎么在笔记本里输入并运行表达式;介绍基本的数学函数;教你怎么画图;过程控制语句(For,While,If等)。不得不吐槽过程控制语句这一部分,对Mathematica稍有了解的朋友都知道,在Mathematica里大量的使用过程式语句是非常不自然且不高效的一种做法,其他语言(比如C)中大量使用的For循环在Mathematica中丑陋而低效。
其实,Mathematica支持很多的编程范式(有可能是最多的),其中最为高效的应该就是函数式了,熟悉一点函数式语言的人再来接触Mathematica可能会倍感亲切。通过纯函数(相当于Lambda演算)、高阶函数(Nest、Fold、Map、Apply等等)等各种函数式编程的技巧,你可以轻易写出简洁到爆的程序,而且绝大部分情况下都比过程式版本高效得多。
但是,这就是全部吗?Mathematica就是一个顺带支持其它编程范式的函数式语言吗?
其实,Mathematica是一个基于规则和模式的重写系统。藏在各种炫目功能和编程形式背后的是一个精心设计的规则替换和模式匹配引擎。Mathematica中的函数是规则,变量也是规则,甚至可以说在Mathematica里变量和函数根本没有本质区别因为它们都是被附加了规则的符号而已。这在其它语言中是很难想象的事情,也正式因为这一点,很多在传统语言中难以做到的事在Mathematica都能实现。比如:在运行过程中修改函数的定义。
经过巧妙的伪装,这个重写系统能模拟出函数式风格,而且模拟地很好,rule-based编程自然也是水到渠成,过程式风格也能刚好凑合,这不能不说是很特别!
http://www.zhihu.com/question/20324243
大家好,5月初UM-CSSA职业发展组邀请今年刚毕业的理论物理博士赵智沉师兄,为密大学子带来关于“从理工科博士到金融界Quantitative Analyst”的分享。现将整理好的现场录音文稿发布,供大家阅读。在此,UM-CSSA职业发展组由衷感谢赵师兄的热心支持与精彩分享,欢迎大家关注UM-CSSA及职业发展组未来的活动! 关于主人公: 他是密大高能理论物理博士,曾荣获三项省级物理数学奥赛一等奖,进入北大元培计划实验班深造 却转战于金融界Quantitative Analyst领域,斩获Credit Suisse工作offer,以及Credit Suisse, Barclays Capital和JPMorgan等3个实习offer 他是密大“甄士隐”戏剧工作坊灵魂人物、思想学术沙龙专家、国标舞&桌游发烧友 也被密大中以理工科背景转行金融行业的同学们称为自己的"祖师爷" 他有一个智慧得深沉的名字:赵智沉 赵智沉:从理工科博士到金融界Quantitative Analyst 背景经历 大家好,我的主要工作是为投行的交易做一些模型,然后用编程的方式把这些模型实现出来,给他们交易员,所以有一点像后勤保障这样的工作。我的经历可能对Ph.D更有用一些,因为我的同行都是Ph.D.,都是博士生毕业。本科生一般没有,硕士生也非常少。所以我一会儿讲下我的经历,你们就知道了。 我先自我介绍一下吧,我叫赵智沉,我现在物理系,第五年刚毕业。我是上海人,本科在北京大学元培计划实验班读的,中学是在上海中学。我属于比较典型的走物理竞赛道路的经历,从初中开始,就参加各种物理竞赛补习班,参加竞赛,然后考中学的理科班,也是搞竞赛的班级。唉,要不大家自我介绍一下先?(听众做自我介绍)看来还是Ph.D.比较多,大部分都是研究生。 这边多少人和我一样搞竞赛的?其实竞赛和高考没有太大区别,就是我们走的是不一样的途径。中学参加理科班,理科班也是参加各种竞赛。通过竞赛得奖,保送大学。在北大也是学的物理。我在北大元培实验班,当时在中国是一个比较新鲜的东西,跟美国本科很像。第一年是不选专业的,进去之后就分文理科,什么都可以修,到第二年才选专业。140分的学分可能只需要40分的专业课,其他100分可以自己修想修的课就可以毕业。所以当时这在中国算是一...
Comments
Post a Comment