#!/usr/bin/ruby
# http://rosettacode.org/wiki/Roots_of_a_function
func f(x) {
x*x*x - 3*x*x + 2*x;
}
var step = 0.001;
var start = -1;
var stop = 3;
range(start+step, stop, step).each { |x|
static sign = false;
var value = f(x);
given (value) {
when (0) {
say "Root found at #{x}";
}
case (sign && ((value > 0) != sign)) {
say "Root found near #{x}";
}
}
sign = value>0;
}