我可以在python中编写Haskell,而不需要静态类型作为障碍
是.
详细说来,我要说的主要问题是在Haskell中使用存在类型来处理异构数据结构(包含各种类型元素列表的常规数据结构).这通常会让OO人习惯于顶级的"对象"类型.它经常捕获Lisp/Scheme程序员.但我不确定它对Pythonista有什么影响.
尝试编写一些Haskell,并在遇到令人困惑的类型错误时返回.
你应该把静态类型视为一种好处 - 它会为你检查很多东西,你越依赖它,你需要测试的东西越少.此外,它使编译器能够更快地生成代码.
好吧,你不能创建一个包含多种类型值而没有包装器的列表(比如获取一个可能包含字符串或int的列表,你必须创建一个列表Either Int String并将每个项目包装在一个Left或一个中Right) .
您也无法定义可以返回多种类型值(例如if someCondition then 1 else "this won't compile")的函数,而不使用包装器.