Есть ли способ заставить порядок кода на Haskell работать как F #? - PullRequest
0 голосов
/ 25 февраля 2019

В настоящее время я изучаю меня на Haskell , поэтому очень хорошо.

Я довольно свободно говорю, когда дело доходит до F #, и я хочу попробовать свои силы в чисто функциональном программировании.

Одна из особенностей, которые мне всегда нравились в F #, заключается в том, что порядок вашего кода имеет значение.Вы не можете вызвать функцию, которую вы еще не определили.Это полезно, потому что это гарантирует, что более ранние файлы кода содержат функции низкого уровня, а более поздний код содержит большую картинку.Это форсирует структуру, которую я сейчас считаю хорошей.

Кажется, Haskell не особо заботится о порядке кода.Хотя я могу выбрать структурирование своего кода как такового, я не обязан это делать.Итак, на этой ранней стадии изучения Хаскелла я хотел бы знать, есть ли какая-то опция компилятора, которая форсирует это?

1 Ответ

0 голосов
/ 25 февраля 2019

Насколько мне известно, единственное обстоятельство, при котором Haskell обеспечивает порядок объявлений в модуле, - это наличие сплайсов Template Haskell.В этом случае объявления выше данного соединения могут не ссылаться на объявления ниже.Я думаю, что это неудачное ограничение шаблона haskell, а не особенность как таковая.

Поэтому я думаю, что технически вы можете заставить GHC принудительно упорядочить, включив Template Haskell и добавив пустые соединения в ваш код.$(return []).Это квалифицированное «нет» - это может быть сделано, но я никогда не видел, чтобы кто-нибудь делал это, и это, вероятно, раздражает читать и писать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...