[Jprogramming] Feedback on beginner's code
'Jon Hough' via Programming
programming at jsoftware.com
Mon Mar 14 02:35:07 UTC 2016
As a fellow beginner (learning for well over a year, on and off), I'll show a way I would do it:
isAnagramOf =: -:&:(-.&' '@:/:~@:tolower)
I think Henry mentioned using the above conjunctions.
Also, as Henry said, Dissecting the verb is a great way to see what happened.
NB. name the string literals, it makes life easier
lhs =: 'a b C'
rhs =: 'cB a'
space =: ' '
load 'debug/dissect'
dissect 'lhs ( -:&:(-.&space@:/:~@:tolower)) rhs'
On top of JForC and Roger Stokes' book, and of course the Dictionary and Nuvoc, I found the "Brief J Reference" really helpful:
http://www.jsoftware.com/books/pdf/brief.pdf
Especially pages 17 and 18, which give a great overview (in diagram form) of J's conjunctions, forks and hooks, without discussing rank, which of course is important, but, for me at least, these diagrams really made the whole concept click.
Regards,
Jon
--------------------------------------------
On Mon, 3/14/16, Adam Tornhill <adam at adamtornhill.com> wrote:
Subject: [Jprogramming] Feedback on beginner's code
To: "programming at jsoftware.com" <programming at jsoftware.com>
Date: Monday, March 14, 2016, 12:21 AM
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