Zif*_*fre 31 functional-programming
在我看来,函数式编程是一件好事.它消除了状态,使得自动使代码并行运行变得更加容易.
许多首先教授命令式编程风格的程序员发现学习函数式编程非常困难,因为它是如此不同.我开始怀疑那些先学习函数式编程的程序员是否会发现很难开始命令式编程.看起来它不会像其他方式那么难,所以我认为如果更多的程序员首先学习函数式编程会是一件好事.
所以,我的问题是,如果在命令式之前在学校教授函数式编程,那么,为什么从它开始并不常见?
jal*_*alf 28
实际上,有些学校已经这样做了.在我学习的地方(哥本哈根大学),他们在第一学期教授SML,作为编程的介绍.然后,他们之后教Java,作为OOP的介绍.
我认为它的效果非常好,我同意你的看法,它比其他方式更好.函数式编程对于尚未成为程序员的人来说相当直观.它更好地映射到我们在高中或更早的时候被教授的数学,所以那些尚未接受命令式编程的人通常会毫不费力地接受它.
实际上,有一种趋势是,在注册时不熟悉编程的人比那些已经学习过Java或C++的人更快地选择SML .
从命令到功能似乎有一个很大的概念上的跳跃,但反过来似乎更容易.学习SML后,学生在接触Java时通常不会发现Java困难.一旦你了解了编程的"纯粹"概念,粘贴副作用就相当简单了.但是如果你对编程的全部理解都是基于副作用,那么很难想象没有它们就有可能做到.
我认为这种方法的一大好处是功能编程原则成为编程工具箱的重要组成部分,而不是你想炫耀时可能会使用的一些深奥的附加组件.即使用命令式语言编程,我认为将您的背景用于函数式语言也是有益的.即使在像C一样低级编程时,考虑最小化状态和副作用,并习惯于高阶函数的概念(即使它们在语言中不可用)也是有益的.
Sco*_*ski 12
许多学校教授函数式编程.他们中的一些人甚至先教它.我认为麻省理工学院长期以来习惯于在计算机编程课程的介绍中教授计划.
在我的学校,我们将ML作为"比较编程语言课程"的一部分,每个人都需要参加.
无论如何,我认为功能编程对于来自命令式语言的人来说难以学习.至少它不适合我.
很多人认为像Haskell和Scheme这样的语言没有得到更广泛采用的原因是因为人们被命令式编程"毁掉"了.那是胡说八道.
这些语言未被广泛采用的真正原因是因为它们不使用花括号.认真.
C/Algol语法风格很流行,因为人们喜欢它的外观.
增加功能性编程的关键不是谈论Haskell是多么伟大,副作用是多么邪恶,或者反复说"monad"这个词.相反,只需创建一个使用花括号和分号的函数式语言.人们会用它.
许多(大多数?)学校教授功能编程.由于许多原因,很少有人会先教它.
功能语言的大多数开发环境都很糟糕,需要广泛的编程知识才能充分利用.这变得越来越不真实,但我们仍然远离Visual Studio for Haskell.
跳进'华而不实的东西'更难.GUI工具包和库很适合大多数功能语言.在屏幕上显示内容并奖励学生非常重要.
由于历史原因,自学成才的程序员倾向于使用命令式/ OO语言.BASIC年轻时的可用性,知道他们最喜欢的游戏是用C或C++编写的,你可以说出来.
简单的资源和函数式编程语言教程很难得到.在Code Project上将C#样本的数量与Lisp样本进行比较.请记住,Lisp已经超过5倍了.
归档时间: |
|
查看次数: |
4078 次 |
最近记录: |