J:

+/ ,.&.": !100x

Haskell:
(almost 1:1 translation)

foldr (+) 0 $ map digitToInt $ show $ product [1..100]

Let's define a factorial function

let factorial = product. enumFromTo 1

then

foldr (+) 0 $ map digitToInt $ show $ factorial 100
\--------/   \--------------------/
    +/               ,.&.":               !100x

Data.Char and Data.List are needed here. They belong to the basic libraries of a Haskell installation.




On 29-05-14 01:41, 'elton wang' via Programming wrote:
This may not be a good example to show Haskell's relative strength. All the expressiveness comes 
from the handy function "digits", which is belong to a package in Haskell, you have to 
"import Data.Digit" or something.





On Wednesday, May 28, 2014 11:35 AM, Jon Hough <[email protected]> wrote:

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

--
Met vriendelijke groet,
@@i = Arie Groeneveld

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to