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