Я пишу программу на Haskell, и в ней много скобок. Поэтому, чтобы устранить этот ужасный беспорядок, я пару раз использую оператор $
, чтобы его было легче читать. Например:
longFunc arg1 (anotherFunc (yetAnotherFunc arg2))
заменяется на
longFunc arg1 $ anotherFunc $ yetAnotherFunc arg2
Но когда я компилирую свою программу с использованием GHCi, я получаю сообщение:
MyFile.hs:18:18: error:
parse error on input ‘$’
Perhaps you intended to use TemplateHaskell
Failed, modules loaded: none.
Вот строки 16 -18:
isDigit :: Char -> Bool
isDigit c =
c `elem` $ ['0'..'9'] ++ "."
Я был сбит с толку, потому что я использовал оператор $
несколько раз (с одним и тем же компилятором) следующим образом:
main = putStrLn $ show 42
Поэтому я набрал этот код в мой файл в качестве теста удалил другие $
вхождения и загрузил его.
И это сработало!
Может кто-нибудь сказать, пожалуйста, что происходит?