I'm clueless -- how would you implement one of the more formally
correct solutions (Newton's, Babylonian, exhaustive search, or random
probing)? K did pretty well.

-Wm


On Thu, Dec 12, 2013 at 11:09 AM, Dan Bron <[email protected]> wrote:
> There is a stack exchange dedicated to code golfing,
> http://codegolf.stackexchange.com/ . During free moments at work, I find
> posting J solutions is a good way to relieve stress.
>
> Today I came across a competition to reimplement square root in as few
> characters as possible [1]. Most languages copped out and simply restated
> sqrt as ^&0.5 to minimize their golf score.  (I did this too, to allow
> apples-to-apples comparisons).
>
> But the C++ entry caught my eye:  exp(log(x)/2)) .  This is an interesting
> approach, and gives us an opportunity to highlight some of the advantages
> of J's notaton. Leaving aside the question of syntax, even expressing the
> 4 primitives in that expression (exp, log, x, 2) would cost most languages
> 8 characters.  But not in J.  In J, we do NOT need:
>
>    - To name variables (so no "x")
>    - To name the constant 2 (in this particular case)
>    - To delimit functions from arguments using parentheses
>    - To explicitly instruct the intreprter to undo the log by typing "exp".
>
> This last freebie is perhaps the most satisfying.  We just tell the
> interpreter that we want to operate "log space", and let J figure out the
> exp for itself.
>
>    -:&.^.
>
> Six characters.  Less than it takes to write "log" and "exp" separated by a
> single space!
>
> -Dan
>
> [1]
> http://codegolf.stackexchange.com/questions/73/reimplementing-square-root/15856
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to