sqrt=: -:@(+%)^:_~ sqrt 3 1.78078 sqrt 17 8.55842
On Thu, Dec 12, 2013 at 1:22 PM, William Tanksley, Jr <[email protected] > wrote: > 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
