equal
  deleted
  inserted
  replaced
  
    
    
|         |      1 // Mandelbrot program (with character constants) | 
|         |      2  | 
|         |      3 val Ymin: Double = -1.3; | 
|         |      4 val Ymax: Double =  1.3; | 
|         |      5 val Ystep: Double = 0.05;  //0.025; | 
|         |      6  | 
|         |      7 val Xmin: Double = -2.1; | 
|         |      8 val Xmax: Double =  1.1; | 
|         |      9 val Xstep: Double = 0.02;  //0.01; | 
|         |     10  | 
|         |     11 val Maxiters: Int = 1000; | 
|         |     12  | 
|         |     13 def m_iter(m: Int, x: Double, y: Double, | 
|         |     14                    zr: Double, zi: Double) : Void = { | 
|         |     15   if Maxiters <= m | 
|         |     16   then print_char(' ')  | 
|         |     17   else { | 
|         |     18     if 4.0 <= zi*zi+zr*zr then print_char('0' + (m % 10))  | 
|         |     19     else m_iter(m + 1, x, y, x+zr*zr-zi*zi, 2.0*zr*zi+y)  | 
|         |     20   } | 
|         |     21 }; | 
|         |     22  | 
|         |     23 def x_iter(x: Double, y: Double) : Void = { | 
|         |     24   if x <= Xmax | 
|         |     25   then { m_iter(0, x, y, 0.0, 0.0) ; x_iter(x + Xstep, y) } | 
|         |     26   else skip() | 
|         |     27 }; | 
|         |     28  | 
|         |     29 def y_iter(y: Double) : Void = { | 
|         |     30   if y <= Ymax | 
|         |     31   then { x_iter(Xmin, y) ; print_char('\n') ; y_iter(y + Ystep) } | 
|         |     32   else skip()  | 
|         |     33 };     | 
|         |     34  | 
|         |     35  | 
|         |     36 y_iter(Ymin) |