次のような基底ペアからベクトル空間を生成したいと思います。
genFromPair (e1, e2) = [x*e1 + y*e2 | x <- [0..], y <- [0..]]
ただし、出力を調べると、取得しているように見えます[0, e2, 2*e2,...]
(つまりx
、0を超えることはありません)。このリスト内包表記を行うためのコードをどのように書くかを考えると、どのような意味がありますか。
原点から拡張する「シェル」を取得するためのコードをいくつか作成しました(最初にノルム0のint、次にノルム1、次にノルム2 ...)が、これは一種の煩わしく、Z^2に固有です-私はZ ^3やZ[i]などに書き換えます。これを行うためのよりクリーンな方法はありますか?