函数式程序语言Haskell解题
以前学的都是C语言,python,Java,php之类的,程序流程都是输入->计算->输出,输入的时候把数据存入变量,然后对这些变量做一些运行,然后把相应的变量打印出来。但函数式语言不能这样做,主要的区别在于函数式语言没有变量的概念,一切的运算都是函数的运算,程序结构中也没有冯诺依曼体系的顺序、条件、循环结构。
因为一切的运算都是函数,所以条件运算也是一个函数.而循环则用函数的递归实现。Haskell是一种函数式语言,它有惰性求值的特性,在递归过程中会在需要计算时才把表达式展开。
函数式有个好处就是对外界环境没有影响,这对并行计算十分重要,比如对某个变量的运算,多个进行中都对其进行操作,处理不好可能出现不可预料的作用,但是函数式的编程对外部环境不产生影响,可以并行运算没有变量交叉访问的副作用。