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

问题描述 投票:5回答:1

我现在是learning me a Haskell,所以非常好。

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

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

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

haskell f#
1个回答
9
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.