У меня есть функция pyths
:
-- takes an Int and returns a list of pythagorean triples whose components
---- are at most the given Int
pyths :: Int a => a -> [(Int, Int, Int)]
pyths n = [(x, y, z) | x <- f, y <- f, z <- f, x^2 + y^2 == z^2]
where f = factors n
Я получаю ошибку, что factors
выходит за рамки. Как мне написать эту функцию, чтобы она была в области видимости?
Я пробовал:
pyths n = [(x, y, z) | x <- f, y <- f, z <- f, x^2 + y^2 == z^2 where f = factors n]
и:
pyths n = [(x, y, z) | x <- f, y <- f, z <- f, x^2 + y^2 == z^2, where f = factors n]
Но тогда я просто получаю синтаксические ошибки.
Примечание: я знаю, что на самом деле это может не соответствовать тому, что я намереваюсь сделать.