||Finds all pythagorean triangles (right triangles with integer sides) ||Note the use of a diagonalising list comprehension, with `//' instead ||of `|'. To see the triangles, say || output output = lay (map show pyths) pyths = [(a, b, intsqrt (a*a+b*b)) // a <- [3..]; b<-[a+1..]; is_sq (a*a+b*b)] intsqrt x = entier (sqrt x) is_sq y = (intsqrt y) ^ 2 = y