百科问答小站 logo
百科问答小站 font logo



为什么国外大学计算机系本科生培养如此强调函数式编程? 第1页

  

user avatar   lu-luce 网友的相关建议: 
      

作为一名学过几天LISP的程序员,我尝试说一下吧。

首先国外的计算机课程的第一步是图灵机开局。先讲计算机的数学基础,也就是自动机理论,也就是《形式语言和自动机理论》这个教材。

之后为了承接这个开局,必须上函数式编程。因为函数式编程是一种对于图灵机的成功描述。毕竟计算机就是这么来的。

而且函数式编程有一个神奇的特点,就是在函数式编程中,数据和程序是一体的。数据可以被解释成程序,程序也可以被解释成数据。关键看你的想法。这件事情对于你理解脚本语言,尤其是解释型语言有非常特殊的意义。

我就是学过《形式语言和自动机理论》和LISP,才能在工作中成功的为一家国内的机器人公司开发出可以逆序执行代码的示教器。

而国内的计算机教育的一个问题就是冯诺依曼体系开局。首先假设程序是分为数据和代码的。硬件的执行是取地址,解析语句,执行。但是,这个方向只是计算机的一个分支。只不过是这个分支现在的商业应用最广泛。

但是这个世界上除了冯诺依曼结构的处理器,还有哈佛结构的处理器的。因此上在学习DSP和并行运算的时候,会比较尴尬。

打个比方,你说你学中学数学,要不要学平面几何。说句难听的,这个数学分支,已经被人反反复复摩擦过2000多年了。还有什么开发价值。但是你能不学吗?你能否认这个学科的价值吗?你能否认欧几里得的《几何原本》价值吗?


user avatar   pansz 网友的相关建议: 
      

这个问题透着一股邪乎味儿,怎么看怎么危险啊……

建议专业机构给予支援。


user avatar   marisa.moe 网友的相关建议: 
      

要理解这个问题,首先你要了解一下光学的发展史,镜头设计基本原理,基本光学知识储备。

你如果上过初中,就会知道凸透镜成像,一个蜡烛,一个纸板,一个凸透镜,成像是倒立的。那么你能那这么一个凸透镜做相机吗?当然能,但是效果会很差,因为镜头会有色散,会有畸变,中心和周围分辨率不同,然后人们就想出各种办法来消除这些问题,经过大量的实验,人们发现了一些改良的方法,代价是用更多的镜片来相互补偿各自的误差,然后又带来一个问题,就是光线在各个镜片之间的反射。

最开始全凭经验,所以做出的镜头相对简单,镜头的镜片数很少,光圈也很小,这时出现了一位天才的光学设计专家,我记得是匈牙利人,用一个复杂的方程组为未来的光学发展奠定了基础。也就是说要设计一个好的镜头,就得满足这个方程组。

那么如果你想做变焦镜头呢?那就必然在这个方程组里做各种妥协。虽然现在发明了各种新材料镜片,新型的图层,减少了妥协所带来的问题,但并不能消除妥协带来的问题。

所以现在变焦倍数小的,画质相对可以接受,变焦越大,越垃圾。




  

相关话题

  俄罗斯人编程为什么那么厉害? 
  如何看待奥巴马呼吁每个美国人都学习编程? 
  在苏联时期苏联人用什么计算机? 
  为什么只有计算机专业非常看重顶会,而其他专业对顶会并不认可? 
  12306 一崩再崩,作为程序员你最想优化哪个功能? 
  路由跟踪为什么会有两个局域网? 
  为什么说人类无法组装出一个细胞? 
  为什么保护模式只能向更高特权级代码段转移控制? 
  用计算器打 CS,实际上真的可以实现吗? 
  人工智能在哪些领域还落后于人类? 

前一个讨论
动物园里的狮子得了肾衰是不是就没救了?
下一个讨论
为啥练徒手搏击的人这么多而练冷兵器的人却不多?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利