Haskell возвращаемая переменная не входит в ошибку области видимости - PullRequest
0 голосов
/ 26 мая 2020

У меня есть следующий Haskell скрипт,

right :: Int -> [(Int,Int,Int)]
right n = [(a,b,c) | [1..n] <- a, [a..n] <- b, [b..n] <- c, a*a + b*b == c*c]

Когда я компилирую скрипт в ghci и ввожу «right 10», я получаю сообщение об ошибке: «* Переменная вне области действия: right :: Integer -> t "

Для ясности я сначала ввожу": l init "(файл - 'init.hs'), а затем пытаюсь вызвать функцию.

что я делаю не так ?

1 Ответ

5 голосов
/ 26 мая 2020

Я думаю, вы еще не скомпилировали свой скрипт в ghci. Когда я пытаюсь, я получаю сообщение об ошибке:

Parse error in pattern: [1 .. n]
Possibly caused by a missing 'do'?

Это потому, что у вас есть порядок вещей <- в обратном направлении.

right n = [(a,b,c) | a <- [1..n], b <- [a..n], c <- [b..n], a*a + b*b == c*c]
...