对于使用最近版本的GHC为初学者教授Haskell,某些功能的类型可能会因为可折叠可穿越前奏(FTP)而引起混淆。例如,列表上的基本功能(如length
,sum
和product
)的类型包括Foldable
约束foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
。对于一些介绍性的高阶功能,例如foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
。制作GHC post FTP感受pre-FTP
什么是暂时启用FTP前行为的轻量级方式?然后初学者仍然可以享受最近的GHC的所有好处,并且不必诉诸试图安装旧版本或使用Hugs(例如edX的FP101x 2015版建议)。
为什么不使用GHC 7.8?使用拥抱我不会推荐 – jberryman
我同意我不会推荐拥抱。但是,由于使用GHC 7.10及更高版本也有相当简单的解决方法,我也不推荐GHC 7.8。 – algotrific
我猜我应该问:你为什么要7.10教学?它们都是优秀的编译器,支持堆栈,易于安装等。实际上,在Mac上最新的7.10版本没有一些问题? – jberryman