有没有办法强制Haskell代码排序像F#一样工作?

Che*_*vas 5 f# haskell

我正在学习一个Haskell,所以非常好.

对于F#我非常流利,我想尝试纯函数式编程.

我一直喜欢F#的一个特点是你的代码顺序很重要.您无法调用尚未定义的函数.这很有用,因为它可以保证早期的代码文件包含低级函数,后来的代码包含更大的图片.它迫使我现在认为是一件好事的结构.

Haskell似乎并不太关心代码顺序.虽然我可以选择构建我的代码,但我并没有被迫.所以在学习Haskell的早期阶段,我想知道是否有一些编译器选项强制这个?

ber*_*gey 9

据我所知,Haskell在模块中强制执行声明顺序的唯一情况是存在Template Haskell接头时.在这种情况下,给定拼接之上的声明可能不会引用下面的声明.我认为这是模板haskell的一个不幸的限制,而不是一个功能本身.

所以我认为技术上你可以让GHC通过启用Template Haskell并在代码中添加空拼接来强制执行排序.$(return []).这是一个合格的"不" - 它可以完成,但我从未见过有人这样做,而且读取和写入可能很烦人.