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



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

  

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

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

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

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

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

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

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

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

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


user avatar   pansz 网友的相关建议: 
      

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

建议专业机构给予支援。


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

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

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

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

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

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




  

相关话题

  开发人员如何构建自己的学习笔记系统? 
  如何评价 Richard Stallman 迫于压力从 MIT 及自由软件基金会离职? 
  TensorFlow 中 padding 的 SAME 和 VALID 两种方式有何异同? 
  工程上存在那么多不确定情况,为什么计算机不能利用它们产生真随机数,而只能根据逻辑产生伪随机数? 
  CPU 的摩尔定律是不是因为 10 纳米的限制已经失效了?10 纳米之后怎么办? 
  你遇到过哪些高质量的 C++ 面试? 
  CPython有GIL是因为当年设计CPython的人偷懒吗? 
  一头雾水计算机小白求问:软件工程师(程序员)究竟干什么的? 
  为什么操作系统不能屏蔽底层的架构(arm,x86,mips),为应用软件提供一个统一的运行环境呢? 
  计算机专业真的如此完美吗? 

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





© 2025-05-05 - tinynew.org. All Rights Reserved.
© 2025-05-05 - tinynew.org. 保留所有权利