函数式程序设计之所以与数学有关,是因为许多函数式程序设计都是用数学概念来描绘的吗?对于一个有命令式背景的程序员来说,学习和理解函数式编程必须有强大的数学基础吗?
发布于 2011-03-21 07:10:06
所有编程都与数学有关。事实上,许多大学仍将其计算机科学项目置于数学系的管辖之下。
至于学习函数式编程,你不需要有强大的数学基础来学习它。我现在已经学会了三种不同的功能语言,达到了合理的水平(Haskell,Erlang,Clojure),而我自己的数学技能非常薄弱。Haskell的社区在其以数学为中心的谈论事物的方式上确实会有点烦人,但是Erlang和Clojure都是非常实用的函数式编程语言,因为教程信息似乎是为程序员编写的,而不是硬核心的数学极客。话虽如此,尽管我在数学上有缺陷,但我还是接住了哈斯克尔,所以这不是不可能的。
在学习声明性编程语言(函数是一个子集)中,我发现真正的困难是放弃控制的冲动;告诉计算机该做什么。这需要一些习惯。
发布于 2011-04-16 11:25:38
是。从本质上讲,一个功能程序就是这样的一堆语句:
// 1_和2_是“虚参数”f( 1_ ) := sin(1_) g(1_,2_) := 1_+ 2_等.
X= f()
Y= g(x)
Z= h(x,h2(y))
等等。
您正在以方程式的形式编写程序应该做的事情,将新值(注:而不是变量)定义为以前定义的值的函数。您还将函数定义为关系。它与数学定理的书写方式非常相似。
发布于 2011-03-21 07:09:39
作为一种可以使用函数式编程的语言的例子,不需要很强的数学背景。事实上,我认为在我的基本数学教育中,我没有遇到像函数式编程这样的东西。我开始做C风格的Mathematica编程,几年后才发现了函数式编程.我认为Map、Apply、NestList等基本函数式编程结构根本不需要任何数学背景。
https://softwareengineering.stackexchange.com/questions/60374
复制相似问题