繁体   English   中英

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

[英]Is there any way to force Haskell code ordering to work like F#?

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM