[Jprogramming] Feedback on beginner's code
Adam Tornhill
adam at adamtornhill.com
Mon Mar 14 13:58:57 UTC 2016
Thanks everyone for all the valuable feedback and encouraging words! Much appreciated.
I've learned a lot from your responses and look forward to explore J in much more depth.
Thanks!-- 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
Den måndag, 14 mars 2016 3:40 skrev 'Jon Hough' via Programming <programming at jsoftware.com>:
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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
More information about the Programming
mailing list