An important consideration is, "clarity for who"?  I want the code to be clear 
to me when I come back to it later.  For that reason I usually code explicitly, 
calling explicit helper verbs, although many of the lines are "tacit in 
spirit".  Suggestive names help.

--Kip Murray

Sent from my iPad

> On Jan 13, 2014, at 12:57 PM, Björn Helgason <gos...@gmail.com> wrote:
> 
> If you try to read compiled executable code from C it would not be very
> readable.
>> On 13.1.2014 18:45, "Dan Bron" <j...@bron.us> wrote:
>> 
>> We often say the APL family of languages allow us to use language as a tool
>> of thought.  How does this play out in practice?  Do we approach reading J
>> programs differently from those written in other languages? If so, how?
>> 
>> These questions occurred to me today while I was knocking together an
>> implementation of a RosettaCode task on reading configuration files.  The
>> task is to parse file formatted like the following:
>> 
>>   # This is the fullname parameter
>>   FULLNAME Foo Barber
>> 
>>   # This is a favourite fruit
>>   FAVOURITEFRUIT banana
>> 
>>   # This is a boolean that should be set
>>   NEEDSPEELING
>> 
>>   # This boolean is commented out
>>   ; SEEDSREMOVED
>> 
>> Fuller example at [1]. After reading the intro, I copy/pasted the example
>> into a J noun and proceeded to write this:
>> 
>>    deb L:0@:(({.~ ; [: < [: ;^:(1=#) ',' cut (}.~>:)) i.&1@:e.&'
>> =')&>@(#~
>> a:&~: > ';#'e.~{.&>)@:(dlb&.>)@:(LF&cut)
>> 
>> Which is a verb which takes the configuration text as input and produces a
>> table of name-value pairs as output. My first thought was "wow, I was able
>> to knock that together in literally less than a minute, through simple
>> incremental iterations in the REPL: J is AWESOME".
>> 
>> But then, thinking about posting it, I realized "this is awful, no one's
>> going to be able to read it like this, and it's going to take more work to
>> make it readable than it took to make it actually work".
>> 
>> So that got me thinking about what exactly we mean by J as a notation. And
>> I wondered: how could we use the language to express our thoughts more
>> clearly, and how does that differ from how we write J when we just want to
>> get something done?  And is this a different or more difficult problem for
>> J than other languages?
>> 
>> So, how would you write an configuration file parser in J, if clarity were
>> an important concern?  I'm interested in not only the actual program, but
>> the reasoning behind the decisions you make.
>> 
>> -Dan
>> 
>> [1] RosettaCode task to read a configuration file:
>>    http://rosettacode.org/wiki/Read_a_configuration_file
>> 
>> 
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to