"Oh father, most of the world is lost in sin.   What is the attraction of this 
sin?"

Kidding. I'm traveling this weekend.  I'll try to compose a serious response 
when I return.

The short story is there is no "perfect style".  The style you choose depends 
on what you're trying to communicate. There are haiku and epics and ballads and 
sonnets. There's Shakespeare and Proust and Hemingway. Without one or the 
other, we'd be missing something.

But the specifics merits of explicit code is a worthy topic to discuss.

-Dan

> 
> On Jan 25, 2013, at 3:05 PM, "Dan Bron" <[email protected]> wrote:
> 
>> Raul wrote:
>>> If explicit code is simpler than tacit, why use tacit for that case?
>> 
>> First, tacit is an end in itself.  Constrained writing can be a source of
>> great beauty.  Have you ever enjoyed a haiku?
>> 
>> Second, for an example of the practical benefits of the tacit style, you
>> might be interested in a recent post where I demonstrated that the syntax
>> of tacit code is subject to algebraic manipulation [1].  Such manipulation
>> allows us to reason about our programs, which is certainly a benefit, and
>> can lead to insights, and even simplifications.  All this can be done on a
>> surface level, without necessarily having to "read" the program; by
>> implication, it means such simplifications can be automated.  
>> 
>> As an analogy, think of the contrast between ancient, prose (rhetorical)
>> problems:
>> 
>>   A necklace was broken during an amorous struggle. One-third of the
>> pearls fell to the ground,
>>   one-fifth stayed on the couch, one -sixth were found by the girl,
>> and one- tenth were recovered
>>   by her lover; six pearls remained on the string. Say of how many
>> pearls the necklace was composed.
>> 
>> and modern algebraic notation:
>> 
>>  6 = x-(x%3)-(x%5)-(x%6)-(x%10) 
>>  6 = x-(24*x)%30
>>  6 = (6*x)%30
>>  x = (30*6)%6 
>>  x = 30
>> 
>> Consider how _hard_ that problem would have been if you didn't have these
>> notational tools to solve it (or even approach it! At the time this problem
>> was proposed, it was considered a serious problem among professional
>> mathematicians).  Consider also that the normalization granted by the
>> notation allowed us to notice repeated patterns, which in turn allowed us
>> to **solve all problems of this form, regardless of the details**!
>> 
>>> {: p. _6 6r30
>>   30
>> 
>> In other words, systemization permits automation. We generalized our
>> insight.  
>> 
>> If you want more examples, compare the utility of the Roman numerals, such
>> as MCMLXXIX (which are "programs to compute numbers"), versus Arabic
>> positional notation (with its computational infrastructure hidden in the
>> background), tha
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to