Обобщающая проблема Haskell (включающая понимание списка)

Допустим, я хочу знать все точки на плоскости (x, y) , которые находятся в прямоугольник имеет .

Я могу вычислить это, используя List Computing, следующим образом:

let myFun2D = [(x, y) | x <- [0..2], y <- [0..2]]

Теперь, если я хочу сделать то же самое для (x, y, z) пространство, я могу пойти тем же путем и сделать:

let myFun3D = [(x, y, z) | x <- [0..2], y <- [0..2], z <- [0..2]]

Есть ли способ обобщить это для любого количества измерений? Если да, то как?

let myFunGeneralized = ?

Спасибо

7
задан devoured elysium 18 September 2010 в 15:29
поделиться