在学校的函数式编程课程中学习了Haskell。发现Haskell有点难以使用。现在已经大量使用Python,Python相当容易使用。
Python确实支持一些函数式编程结构。
正在考虑重新学习函数式编程。哪种语言更适合编码?Haskell还是Python?为什么?
在学校的函数式编程课程中学习了Haskell。发现Haskell有点难以使用。现在已经大量使用Python,Python相当容易使用。
Python确实支持一些函数式编程结构。
正在考虑重新学习函数式编程。哪种语言更适合编码?Haskell还是Python?为什么?
这个问题凸显了我对函数式编程的常见理解之一的不满。拥有闭包和头等函数等语言特性并不会使语言成为一个“函数式编程语言”。函数式编程与特定的语言结构一样也是关于特定的编程“风格”。Python 有闭包、头等函数,甚至还有一个名叫“map”的函数,但是它本身鼓励过程化、面向对象、命令式编程风格; 所以即使您使用函数式特性,您仍然是在进行命令式编程。
作为一个“纯函数式语言”,Haskell 基本上要求人们采用声明式、函数式的编程风格,因此毋庸置疑,Haskell 比 Python 更“函数式”。
就像Boldewyn所说的那样。Haskell是最“强硬”的函数式语言之一,因为根本没有办法维护可变状态。
话虽如此,Haskell与大多数人接触到的命令式和混合模型语言有着天壤之别,因此,如果一个人来自VB、C(++)或Java等背景,学习它需要一定的学习曲线。
另一方面,Python则具有“功能展示和演示”部分,在这个部分中,可以在主要是命令式环境下测试驱动几个功能性特征。
因此,如果在他最初的问题中,OP的“更好”意味着“更加功能性”或“更好的函数式编程语言”(正如他后来所表明的),那么Haskell毫无疑问是“赢家”。
来自Haskell主页:
Haskell是一种高级纯函数式编程语言。它是二十多年前尖端研究的开源产品,允许快速开发强大,简洁,正确的软件。
调侃翻译:
开玩笑了,函数式语言并不适合大多数人,永远也不会适合。虽然有些人能像栈一样思考,但我更希望计算机更加努力地理解我的胡言乱语。
map (* 2) list
。我不需要在脑海中构想堆栈,也没有任何错误的空间。我只需告诉它,“我想把所有这些东西加倍”,然后它就为我完成了。 - Chuck