Код на haskell компилируется на лексах а не на ghc
Как говорится в вопросе, у меня есть некоторые, которые компилируются в лексах, но не компилируются с использованием ghc --make filename.hs
Код:
module Main (
main
) where
pair a b = (Pair (a, b))
newtype Pair a b = Pair (a,b) deriving (Eq,Show)
instance (Num a,Num b) => Num (Pair a b) where
Pair (a,b) + Pair (c,d) = Pair (a+c,b+d)
Pair (a,b) * Pair (c,d) = Pair (a*c,b*d)
Pair (a,b) - Pair (c,d) = Pair (a-c,b-d)
abs (Pair (a,b)) = Pair (abs a, abs b)
signum (Pair (a,b)) = Pair (signum a, signum b)
fromInteger i = Pair (fromInteger i, fromInteger i)
main = do
a <- return (pair 1 3)
print a
print "haha"
print 3.2
print [3,4,3]
Есть ли вариант, который мне нужно вызвать, чтобы заставить его работать с ghc --make
?
Отказ от ответственности: я не сделал пару нового типа.
Редактировать:
Когда используешь ghc --make Bignumber.hs
(Bignumber.hs - это имя файла)
[1 of 1] Compiling Main ( BigNumber.hs, BigNumber.o )
BigNumber.hs:20:13: parse error on input `print'
1 ответ
Решение
Проверьте свой отступ: может быть, вы смешиваете табуляции и пробелы таким образом, что ghc интерпретирует иначе, чем leksah? Я не вижу другого объяснения ошибки разбора в print
,