Though I understand Roger's 0".": solution maybe faster, there is an 
alternative to your padded base use of #:

   10 #. inv 2^15 
3 2 7 6 8 

so a comparable to haskell approach

   +/ 10 #. inv 2^1000x 
1366 
and a verb version:

([: +/ #. inv)  or 10&([: +/ #. inv) if you always want base 10

   10 ([: +/ #.inv)  2^1000x 
1366 

   16 ([: +/ #.inv)  2^1000x 
1 




----- Original Message -----
From: Jon Hough <[email protected]>
To: "[email protected]" <[email protected]>
Cc: 
Sent: Wednesday, May 28, 2014 11:35:26 AM
Subject: [Jprogramming] Project Euler 16, J vs Haskell

Project Euler 16 is defined:
215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.What is the sum 
of the digits of the number 21000?
http://projecteuler.net/problem=16


My J solution:NB. create base
base =. 302 $ 10

digitsum =. +/ @:(base & #:)"1@: (1000x &(^~))   digitsum 2
As a J beginner, clearly my code is not as terse or as elegant as it could be. 
But browsing the solution forums I found this Haskell solution:
sum $ digits 10 $ 2^1000

I don't know Haskell but the above code pretty much speaks for itself. Clearly 
the solution is terse, simple and easy to understand.Comparing Haskell to J, it 
seems one of J's strong points, terseness and rapid program developing, doesn't 
hold up to Haskell so much as it does against C-style languages.
So my question is, what advantages does J hold over Haskell, in terms of speed, 
terseness etc?
Regards.                           
----------------------------------------------------------------------
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