Как и в C, Java или C #, main
- это специальный идентификатор в определенных контекстах, который указывает, где должна начинаться программа.
В Haskell, main
определен, чтобы иметь тип IO a
.Вам следует либо дать вашей функции другое имя, либо, если вы действительно хотите, чтобы она была отправной точкой, измените ее сигнатуру и попросите ее прочитать аргументы из командной строки с помощью getArgs
Хотя вы этого не сделалиспросите это конкретно, main
также особенное в том, что это единственная функция в программе на Haskell, которая может (безопасно) вызывать действия ввода-вывода.Во время выполнения на Haskell main
рассматривается как особый.