我想使用无穷大列表在Haskell中生成勾股三元组。我的代码有什么问题:
trojkaty = [(a,b,c) | a <- [1..], b <- [1..], c <- [1..], (a^2)+(b^2)==(c^2)]
尝试用的中间值来表示a
和的上限,否则将在检查最后一个条件之前强制使用所有无限值列表。b
c
trojkaty :: [(Int, Int, Int)]
trojkaty = [(a,b,c) | c <- [2..], b <- [2..c-1], a <- [2..b-1], a^2 + b^2 == c^2]
main = do
print $ take 5 trojkaty
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句