Recently, I've been playing around on Rosetta Code [1].  A Python guy posted a 
new task:

     http://rosettacode.org/wiki/Words_Of_Equal_Characters

What is the shortest possible J expression to solve this task?    Here, 
"shortest" means the minimum number of essential (required) characters.  Right 
now, I have:

           >(#~[:(=>./)#&>)(</.~[:i.~/:~&.>)<;._2 toJ fread 
jpath'~temp\unixdict.txt'
        +-----+-----+-----+-----+-----+
        |abel |able |bale |bela |elba |
        +-----+-----+-----+-----+-----+
        |alger|glare|lager|large|regal|
        +-----+-----+-----+-----+-----+
        |angel|angle|galen|glean|lange|
        +-----+-----+-----+-----+-----+
        |caret|carte|cater|crate|trace|
        +-----+-----+-----+-----+-----+
        |elan |lane |lean |lena |neal |
        +-----+-----+-----+-----+-----+
        |evil |levi |live |veil |vile |
        +-----+-----+-----+-----+-----+

which is shorter than the original Python solution, but not dramatically 
shorter.  Is there a way to code this to really show off J's power?  I'm more 
focused on the aspect that produces the result given a list of words, rather 
than the aspect that generates the list of words from the text (i.e. I'm 
seeking to minimize the code to the left of the cut).

-Dan

[1] Rosetta Code is what it sounds like -- a chrestomathy site where 
programmers are invited to solve programming tasks using different languages, 
to build up a "Rosetta Stone" for different programming languages.

Of course, the primary motivation for posting a solution to Rosetta Code is not 
to teach others your language, or to make it easier for a maintenance 
programmer to convert a legacy system from COBOL to Perl.  Those are just side 
effects.    The primary motivation for posting a solution to Rosetta Code is to 
brag.  It's main constituency is evangelists.  It's the premier public 
programming pissing match.

One drawback of Rosetta Code is that only the results of the programmer's 
efforts are visible; there's no way to tell how long the solution took, or how 
the language enabled the programmer to reach the solution.  So even though this 
solution (the "obvious way") took me less than a minute to write, no one 
reading the page will know that.  The only opportunity to "wow" the audience is 
with a succinct, elegant solution.  And since most of the audience won't be 
able to read J, elegant is less important than succinct.  That's why I'm 
seeking an impressively short solution to this task (which seems right up J's 
alley).

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

Reply via email to