I'm not sure if it's legit to compare languages. That said, it's kind of interesting to think of how you might implement something like Haskell (or a subset) in J. Similarly, it's kind of interesting to think about how you might implement J (or a subset) in Haskell. (For example, you could use a tuple of maybes to represent J's concept of "array type", with each maybe holding the data for one possible type - shape, and the type tag itself would be stored separately.)
Thanks, -- Raul On Wed, May 28, 2014 at 7:50 PM, 'elton wang' via Programming < [email protected]> wrote: > For language comparision rather than library comparision, we need to > compare the "digits' source code with the J implementations here: > > > http://hackage.haskell.org/package/digits-0.1/docs/src/Data-Digits.html#digits > > > -- | Returns the digits of a positive integer as a list, in reverse order. > -- This is slightly more efficient than in forward order. digitsRev :: > Integral n => n -- ^ The base to use. -> n -- ^ The number to convert to > digit form. -> [n] -- ^ The digits of the number in list form, in reverse. > digitsRev base i = case i of 0 -> [] _ -> lastDigit : digitsRev base rest > where (rest, lastDigit) = quotRem i base -- | Returns the digits of a > positive integer as a list. digits :: Integral n => n -- ^ The base to use > (typically 10). -> n -- ^ The number to convert to digit form. -> [n] -- > ^ The digits of the number in list form. digits base = reverse . digitsRev > base > > > > On Wednesday, May 28, 2014 7:41 PM, 'elton wang' via Programming < > [email protected]> 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 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
