[Jprogramming] Feedback on beginner's code

Henry Rich henryhrich at gmail.com
Sun Mar 13 16:15:11 UTC 2016


Wow, that's amazing for a first program.  You'll go far with this language.

There are easier ways to do what you did:
(' ' & i.#])
removes spaces.  Easier is
-.&' '

(*/)@(=&(...))
will cause trouble if the left and right arguments have different 
length, which is why you had to discard that case.  The better way to 
check for identical arguments is
-:
which doesn't have that problem.

Applying these changes leaves

isAnagramOf =: -:&:(/:~@tolower)&:(-.&' ')

which uses your ideas, and gives the same result except that '' 
isAnagramOf '' will be 1.

Notice I used &: instead of & .  & would work here, but don't use @ and 
& until you understand how they differ from @: and &: .

Henry Rich





' ' & i.#])
On 3/13/2016 11:21 AM, Adam Tornhill wrote:
> Hi all,
> I finally decided to try to understand this fascinating language. So far I've spent some evenings reading and experimenting with the language. J is fun. Real fun. I also like how J forces me to re-consider how I view programming. Of course, that also means I'm still at a complete beginner's stage, so I'd like to ask for some feedback and suggestions on my first J code. I'm sure there's a lot I can simplify in my code.
> Here's the code I put together by digging around in the J Dictionary:
> isAnagramOf=:(0:`((*/)@(=&((/:~@tolower)@(' ' & i.#])))))@.(=&(#@:(' ' & i.#])))
>
> Some examples:
>    'Nag a Ram ' isAnagramOf 'Anagram'1
>     'ab' isAnagramOf 'aa'0
> All tips and hints on both the code and learning J in general would be much welcome.
> Thanks!/Adam--  Homepage: www.adamtornhill.com  Twitter: @AdamTornhill
> Your Code as a Crime Scene: https://pragprog.com/book/atcrime/your-code-as-a-crime-sceneLisp for the Web:  https://leanpub.com/lispwebPatterns in C: https://leanpub.com/patternsinc
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm



More information about the Programming mailing list