let xmin = -2.0 let xmax = 1.0 let ymin = -1.0 let ymax = 1.0 let xstep = Int(CommandLine.arguments[1]) ?? 0 let ystep = Int(CommandLine.arguments[2]) ?? 0 let iters = Int(CommandLine.arguments[3]) ?? 0 func escapes(cr: Double, ci: Double, it: Int) -> Character { var zr: Double = 0.0 var zi: Double = 0.0 var zrtmp: Double for _ in 1...it { // z <- z^2 + c zrtmp = zr*zr - zi*zi + cr zi = 2*zr*zi + ci zr = zrtmp if zr*zr + zi*zi > 4 { return " " } } return "X" } for yc in 0...ystep-1 { let y = Double(yc)*(ymax-ymin)/Double(ystep) + ymin for xc in 0...xstep-1 { let x = Double(xc)*(xmax-xmin)/Double(xstep) + xmin print(escapes(cr: x, ci: y, it: iters), terminator: "") } print("") }