If you had a "whitespace" to "parenthesized" translator, it might be worth
considering. For now I, for one, will reserve.
-----------------------------------------------------------------------
|\/| Randy A MacDonald             | you can't pay for it,
|/\| [EMAIL PROTECTED]            |       even if you want to.
BSc(Math) UNBF'83 Sapere Aude      | APL: If you can say it, it's done..
Natural Born APL'er                | Demo website: http://142.166.105.166/
----------------------------------------------------(INTP)----{ gnat }-

----- Original Message ----- 
From: "p j" <[EMAIL PROTECTED]>
To: "Programming forum" <[email protected]>
Sent: Tuesday, March 21, 2006 5:42 PM
Subject: [Jprogramming] Radical default parenthesising method/idea


>   4 * 3 + 2 * 3 - 1
> 28
>
> What would you expect the programmer intended in the
> following?
>   4*3 + 2*3 -1
>
> Almost everyone would say: 12 + 6 - 1
>
> There's a way to unambiguously use whitespace to alter
> binding precedence such that code is clearer to read,
> and significantly faster to write and edit if you
> consider the cursor movement and shift keys necessary
> to add parentheses.
>
> The 2 rules are:
> 1. Parentheses have precedence over white space. ie.
> 2*(3 -1) is the same as 2* (3 -1)-: 2* 3-1.
> 2. Ambiguous white space (where dyad has space on left
> side) resolves by binding the left argument as up to
> the first space to the left of the series of
> arguments.ie.
> 2 *3 -1 -: 2*3 -1 -: (2*3)-1
> 5+ 4+2 *3 -1  -: 5 + ((4+2)*3) -1
>
> 3. Im not sure how to handle adverbs and conjunctions,
> but binding to everything up to whitespace seems
> entirely functional, so I will suggest that for now.
>
> More examples
> 2 *3 -1 -: (2*3) -1 (rule 2)
> 4* 3+ 2* 3- 1 -:(4*3+2*3-1) rule 2
> (*: 2* 3-1) -: (*: 2 * 3-1)
> (*:2* 3-1) -: (*:2 * 3-1) -: (*:2) * 3-1
> 4 *3 +2 *3 -1 -: ((((4*3)+2)*3)-1)
>
>
> +:@-+: 3 -: (+:@[EMAIL PROTECTED]: 3) -: +:@- +: 3 NB. = _12 ... No
> train, but @ binds with -+:
> +:@(-+:) 3 NB. = _6 ... binds @ to  hook
> +:@- 2+3 -: (+:@ -2+3)  NB. normal parenthesising =
> _10... right hand side of conjunction doesn't normally
> get affected.
>
> There is another big advantage in addition to clearer
> code intentions from this syntax change.  It would
> make parentheses only necessary to describe trains,
> and so make spotting/interpreting trains easier.
>
> I still make a lot of bugs by forgetting the postfix
> preference.  When I first started with J, I would fix
> that by parenthesising everything in sight, and
> sometimes that would trigger trains unintentionally.
>
> This would be very sweet sugar, and hope you consider
> it.  Let me know of any issues you find with the
> approach.
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> ----------------------------------------------------------------------
> 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