Alternately, if you want a purer FP solution:

    sub infix:<clamp> is looser(&infix:<..>) (Num $x, Range $r) {
        given $x {
            when $x < $r.min { $r.min }
            when $x > $r.max { $r.max }
            default          { $x }
        }
    }

    ...
    take $foo clamp 100..200;
    take $bar clamp $midpoint ± $epsilon;

Larry

Reply via email to