Darren Duncan wrote:
Dave Whipp wrote:
sub sqrt(Num where { 0 <= $_ <= Real::Max } $x) { (0..$x/2 :by(Real::Epsilon)).min: { abs $x - $^candidate ** 2 } }So do you really mean "as declarative a manner as possible"? Or would you consider this example to go beyond "possible"?I would declare sqrt this way instead (the body is the important change): sub sqrt(Num where { 0 <= $_ <= Real::Max } $x) { $x ** (1/2) }
In other words, you prefer explicit definition to implicit declaration (in this case, you're basically saying that "sqrt" is a curried exponentiation). Do you have any examples of what you'd propose as declarative forms for prelude.pm?
