Я только начал изучать haskell (буквально, сегодня!), и я немного затрудняюсь понять логику понимания списков, более конкретно оператор <-
. Небольшой пример в Learn You Some Haskell Находит все кортежи длиной менее 10:
ghci> let triangles = [ (a,b,c) | c <- [1..10], b <- [1..10], a <- [1..10] ]
мое первоначальное понимание заключалось в том, что все они будут увеличиваться вместе, но после просмотра вывода я действительно не понимаю метод incrementing для этих списков. Другой пример, который, кажется, меня достает:
ghci> let rightTriangles = [ (a,b,c) | c <- [1..10], b <- [1..c], a <- [1..b], a^2 + b^2 == c^2]
Я был бы очень благодарен за небольшое объяснение по этому поводу, спасибо за ваше терпение из-за моего отсутствия интеллекта haskell.