const ( a = 200, b = 200, n = 2.5, ) # y in terms of x func y(x) { b * (1 - abs(x/a)**n -> root(n)) -> int } func pline(q) { <<-"EOT"; EOT } # Generate an SVG image say <<-"EOT" EOT # find point pairs for one quadrant var q = { |x| (x, y(x)) }.map(0..200 `by` 2) [ pline(q), pline(q »*« [ 1,-1]), # flip and mirror pline(q »*« [-1,-1]), # for the other pline(q »*« [-1, 1]), # three quadrants ].each { .print }   say ''