Devon McCormick wrote:
> 
> The short answer is: don't do that.
> 
> If you want to use single letter names for throw-away, local temp
> variables, that's fine but the point of a global is that it has some
> importance and ubiquity.
> 
Maybe the definition I gave previously
 e=:1x1

has neither importance nor ubiquity for many a reader, who would
upon reading a program with such a global definition be appalled by 
such an obvious lack of style.   But is any of that really relevant?
Shouldn't there be required a minimum of reading comprehension
that reader of a program knows at least what constitutes a valid
identifier?  There are also comments to help out:

 c=:299792458  NB. m/s  (the speed of light)
 a0=:0.53 NB. Ang  (Bohr radius)

Call me old fashioned, but I really like, now when computers
know about the difference between small and capital letters, to be
able to use say c3 for, well, yes, the third coefficient, and A for,
indeed, matrix A.  Let me go on some more: f for a function and
f1 for f"1 that just happens to pop up as often as f.  Or maybe
a different version of the same function, just optimized for 
a particular case of use?  Or maybe my imagination is so poor
that I can't think of any more readable way to write:
   f0`f1`f2`f3@.g

This is not to say that I would forbid programmers from using
something more descriptive for their temps and globals, like:

 SPEEDOFLIGHT=:299792458

or, if that constant happens to be very frequent in the program,
so programmer got tired of pressing Ctrl+N every so often,
her eyes getting sore of all these capitals seeking attention,
something shorter, informative, and more stylish like:

 SPOFL=:299792458  NB.  c =299792458 m/s 



> I'm a big fan of terseness - e.g.
> http://www.jsoftware.com/jwiki/NYCJUG/2009-08-11#TerserisBetter - but
> would
> it really kill you to add a letter or two?  Not to mention the extra
> difficulty of searching for single-letter names...
> 
Except that the question at stakes is not that of whether terse is 
better or not, but the one of style of naming things, where the
greatest achievement so far was the realization that it is universally
open ended.  

Here are my favorite examples where naming conventions
were enforced by the language to achieve something useful:

1) Implicit typing in FORTRAN: variables starting with I, J, K are ints,
etc,
2) Capital letters for free variables in PROLOG,
3) First capital letter for type identifiers in Haskell,
4) use of ' in identifier names, like f' or f'1 in Haskell.

Some informal popular naming schemes:

1) Identifiers starting and ending with * in LISP for global/special vars.

2) One gaining followers is myFunc or myProc naming convention,
   although there is a school of thought that prefers my_func or
   my_proc, respectively.  

3) ALLCAPITALS (or was it ALL_CAPITALS?) for global constants in C.

I don't have to especially emphasize that J, when it comes to notation,
is all fun.  To the example that Tracy mentioned attributing it to Jose:
 o =: @

I can only retort with:
 O =: @:

There is also km's 
 o =: +/ . *

Here are some more fun examples:
  plus=:+
  Insert=:/
  Row=:"1

Now, +/"1 can be written as

  plus Insert Row

or defined as:

  plusInsertRow =: plus Insert Row

or alternatively as:

  sum =: plus Insert

  sumRow =: sum Row



> On Thu, Jan 19, 2012 at 9:50 AM, Viktor Cerovski
> <viktor.cerov...@gmail.com>wrote:
> 
>>
>>
>> Raul Miller-4 wrote:
>> >
>> > I wrote up a wiki essay (or perhaps a rant) on some issues that come
>> > up in the context of parsing J:
>> > http://www.jsoftware.com/jwiki/Raul%20Miller/ParsingJ
>> >
>> > My suggestions there may not be ideal, but I sort of like them.
>> >
>> > --
>> > Raul
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>> >
>> >
>> Leaving the question of style aside, there is one formal problem
>> with the convention:  how would one interpret names consisting of
>> a single capital letter (with or without trailing numbers): as nouns
>> or adverbs?  Both naming schemes make sense.  For instance:
>>
>> I =: 1
>> I1 =: /("1)
>> I2 =: /("2)
>> E =: &.>
>>
>> Also, some might prefer additionally to have something like:
>>
>> e=:1x1
>>
>> etc.
>> --
>> View this message in context:
>> http://old.nabble.com/wiki-essay-tp33157128s24193p33168317.html
>> Sent from the J Programming mailing list archive at Nabble.com.
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> 
> 
> 
> -- 
> Devon McCormick, CFA
> ^me^ at acm.
> org is my
> preferred e-mail
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> 
> 

-- 
View this message in context: 
http://old.nabble.com/wiki-essay-tp33157128s24193p33171648.html
Sent from the J Programming mailing list archive at Nabble.com.

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to