User talk:Gaaijz: Difference between revisions

From Rosetta Code
Content added Content deleted
(Generic swap)
(J alphabet gaps)
Line 46: Line 46:


--[[User:DanBron|DanBron]] 16:05, 29 September 2008 (UTC)
--[[User:DanBron|DanBron]] 16:05, 29 September 2008 (UTC)

== [[User_talk:DanBron#J_alphabet_gaps|J alphabet gaps]] ==

Hey. I've [http://rosettacode.org/w/index.php?title=User_talk:DanBron&diff=21027&oldid=20969 responded] to your [http://rosettacode.org/w/index.php?title=User_talk:DanBron&diff=20969&oldid=17957 inquiry] about alphabetic gaps in J's task coverage on RC.

--[[User:DanBron|DanBron]] 20:26, 23 January 2009 (UTC)

Revision as of 20:26, 23 January 2009

welcome!

Welcome to Rosetta Code! If you have any questions, drop them in the appropriate talk page, and someone will get back to you. If you have a more general question, try Mwn3d's or my talk pages. --Short Circuit 04:10, 2 September 2008 (UTC)

Jers

Hey Arie. This is Dan Bron from the J forums. Tracy Harms is here too. It's good to have J representation on RosettaCode. I'm glad you posted a J solution to the Pyramid of Numbers, that was near the top of my to do list. Have you considered posting a task along the lines of your Rabbit Sequence?

Oh, by the way, I linkified your user page. I hope you don't mind. Go ahead and revert it if you like it better the other way.

DanBron 13:48, 2 September 2008 (UTC)

Zigzag

Two different approaches with Haskell for the zigzag task.

zigzag m n = take m .transp_wof $ zipWith id (cycle [reverse,id]) antiDiags where
  mmn        = min m n
  antiDiags  = unfoldr (\((c:cs),xs) -> if null xs then Nothing else Just (take c xs,(cs,drop c xs)))
               ([1..mmn-1]++(replicate (succ.abs $ m-n) mmn)++[mmn-1,mmn-2..0], [0..m*n-1])
  transp_wof = unfoldr (\xs -> if null xs then Nothing else Just $ next xs)
  next xs    =  (,) (concatMap (take 1) ks) ((map (drop 1) $ drop 1 ks) ++ ts)
       where (ks,ts) = splitAt n xs

Slower version, almost complete emulation of the J-solution
groupon f x y= f x == f y
tab n = fst . until (null.snd) (\(xs,ys)-> (xs++[take n ys], drop n ys)) . (,) []
grade xs = map snd. sort $ zip xs [0..] 

zigzagJ m n = tab n. grade .concat $ zipWith id (cycle [reverse,id]) fdiag
  where fdiag = map (map snd). groupBy (groupon fst).sortBy (comparing fst)
                $ zip (map sum $ sequence [[0..m-1],[0..n-1]] ) [0..]
*Main> sum.map sum $ zigzag  500 500
1185103928
(0.69 secs, 103908376 bytes) 

*Main> sum.map sum $ zigzagJ 500 500
31249875000
(4.55 secs, 575802084 bytes)

Words Of Equal Characters

Hi, Could you add some sample output to your Haskell implementation? Thanks. --Paddy3118 18:47, 26 September 2008 (UTC)


Generic swap

Hello again. I've responded to your question re: Generic swap.

--DanBron 16:05, 29 September 2008 (UTC)

J alphabet gaps

Hey. I've responded to your inquiry about alphabetic gaps in J's task coverage on RC.

--DanBron 20:26, 23 January 2009 (UTC)