У меня есть эта сложная итерационная программа, которую я написал в TI Basic, чтобы выполнить базовую итерацию для комплексного числа, а затем дать величину результата:
INPUT “SEED?”, C
INPUT “ITERATIONS?”, N
C→Z
For (I,1,N)
Z^2 + C → Z
DISP Z
DISP “MAGNITUDE”, sqrt ((real(Z)^2 + imag(Z)^2))
PAUSE
END
Что я хотел бы сделать, так это сделать версию на Хаскелле, чтобы удивить моего учителя при выполнении задания. Я все еще только учусь и получил это далеко:
fractal ::(RealFloat a) =>
(Complex a) -> (Integer a) -> [Complex a]
fractal c n | n == a = z : fractal (z^2 + c)
| otherwise = error "Finished"
Что я не знаю, как это сделать, так это сделать так, чтобы он повторялся только n
раз, поэтому я хотел, чтобы он подсчитал a
, а затем сравнил его с n
, чтобы увидеть, завершился ли он.
Как бы я поступил об этом?