この関数を利用するHaskell関数を作成しようとしています:
E(x,y)(i,j) = ((i*i) - (j*j) + x, (2*i*j) + y)
F(x,y)
ポイントのリスト(x,y)
はアイテムの無限リストでなければなりません:
F(x,y) = {(0,0) , F(x,y)(0,0), F(x,y)(F(x,y)(0,0)), F(x, y)(F(x,y)(F(x,y)(0,0)))など}
私の理解では、リストの n 番目のエントリは、それ自体で n 回構成され、次に適用される関数F(x,y)
です。E(x,y)
(0,0)
これは私が今のところ考えていることです:
entry :: (Int,Int) -> [(Int,Int)]
efunction (i,j)(x,y) = ((i*i) - (j*j) + x, (2*i*j) + y)
entry (x,y) = efunction(0,0)(x,y) where
efunction = (0,0) : iterate efunction(i,j)
また、(x,y)=(0,0)
静的なままです。変化する唯一の変数は(i,j)
.
サンプル出力は次のようになります。
entry(1,1) =
0,0
1,1
1,3
-7,7
1,-97
私は Haskell にかなり慣れていないので、これが機能しない理由と実際に機能させる方法について頭を悩ませようとしています。何か助けはありますか?