我具備的功能pyths
:函數調用超出範圍在WHERE子句
-- 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]
但我只是得到語法錯誤。
注: 我知道這可能不是真正做什麼,我打算做的事。
您可以通過在某處實際定義「因素」來使「因素」處於範圍之內。 – sepp2k
這不是前奏曲,也不是標準庫中的其他地方。 – sepp2k
注意:'Int'不是一個類型類,所以你不能在類型約束中使用它。也許你的意思是'Integral',它是整型類型的類型,或者是'Int - > [(Int,Int,Int)]'中的普通類型'Int''? – hammar