haskell vs python打字

Sta*_*low 2 python static haskell types dynamic

我正在寻找例子,因为它是动态类型的,python中的东西更容易编程?

我想将它与Haskell类型系统进行比较,因为它的静态类型不会像c#或java那样受到影响.我可以在python中编程Haskell而不用静态类型作为障碍吗?

PS:我是一名python用户,并且与ML和Haskell玩过一点......我希望现在很清楚......

Don*_*art 7

我可以在python中编写Haskell,而不需要静态类型作为障碍

是.

详细说来,我要说的主要问题是在Haskell中使用存在类型来处理异构数据结构(包含各种类型元素列表的常规数据结构).这通常会让OO人习惯于顶级的"对象"类型.它经常捕获Lisp/Scheme程序员.但我不确定它对Pythonista有什么影响.

尝试编写一些Haskell,并在遇到令人困惑的类型错误时返回.

你应该把静态类型视为一种好处 - 它会为你检查很多东西,你越依赖它,你需要测试的东西越少.此外,它使编译器能够更快地生成代码.


sep*_*p2k 5

好吧,你不能创建一个包含多种类型值而没有包装器的列表(比如获取一个可能包含字符串或int的列表,你必须创建一个列表Either Int String并将每个项目包装在一个Left或一个中Right) .

您也无法定义可以返回多种类型值(例如if someCondition then 1 else "this won't compile")的函数,而不使用包装器.

  • @Michael:尝试将`[1,"abc",True]`输入`python`和`ghci`.Python允许它,Haskell没有. (3认同)
  • 创建一个包含多种类型的列表是一个好主意吗? (2认同)