Как иметь несколько бесконечных диапазонов в списках?

В Haskell у меня есть понимание списка, как это:

sq = [(x,y,z) | x <- v, y <- v, z <- v, x*x + y*y == z*z, x < y, y < z]
    where v = [1..]

Однако, когда я пытаюсьtake 10 sqпросто зависает ... Есть ли способ обработки нескольких бесконечных диапазонов?

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос