Thank goodness for loony ideas, eh? I learned a lot from Iverson’s writings and 
APL and its descendents. It is worth revisiting his writings (just like 
Dikjstra’s) from time to time. Array programming should be much more 
aprpeciated these days when many-core processors are becoming more and cloud 
based services essentially stand up an array of identical servers — and we have 
to use clumsy notation for all this. At any rate mathematics doesn’t exactly 
have a completely logical system of symbols.

Incidentally the only meaningful use of unary +  I’ve seen is in K (another 
array programming language), where it stands for the “transpose” function, 
where the first two axes of an array are swapped.

  (1 2;3 4)     // outputs as:
(1 2
 3 4)
  +(1 2;3 4)
(1 3
 2 4)

Another aside: Go’s treatment of - for constants is a bit weird. I’ll explain 
with an example from Gambit Scheme, which has the correct behavior:

> (/ 1.0 0.0)
+inf.0
> (/ 1.0 -0.0)
-inf.0

As you can see -0.0 does have a meaning different from +0.0.

In Go there are two issues:
The compiler refuses to divide by the constant 0.0 — This operation has a well 
defined meaning but the compiler thinks it knows best (this behavior is 
documented in the spec, which is good, but I don’t see the rationale for this 
behavior). So one has to use a variable to test this … where we run into the 
second problem: -0.0 is treated the same as +0.0:

x := -0.0
fmt.Println(1.0/x)

This prints +Inf, when it should be printing -Inf. One has to explicitly negate 
x as in

fmt.Println(1.0/-x)

Aside #3: Lucio, knowledge of K and its friendier version Q (used in KDB+) can 
be very rewarding! They are used in quantitative finance (along with python, 
matlab, ocaml etc). Though the number of available jobs are perhaps small (also 
because one APL/J/K/Q programmer can cause a lot of havoc in just one line of 
code!)

> On Aug 20, 2016, at 5:28 AM, Michael Jones <michael.jo...@gmail.com> wrote:
> 
> I took Thomas’s “loony-land” comment as jest. 
>  
> Presumably we all study the Turing Award lectures, each being the computer 
> science community’s way of passing a life’s celebrated contributions to the 
> future. In Dr. Iverson’s Turing Award lecture, “Notation as a Tool of Thought 
> <mailto:http://www.eecg.toronto.edu/~jzhu/csc326/readings/iverson.pdf>,” he 
> explores the link between expression of ideas and the power to create and 
> advance ideas. Essentially, that “language shapes thought,” one of the 
> beliefs I hold. His use of minus and negative there are not the only “loony” 
> (perhaps meaning “other than ordinary”) ideas in what remains to this day an 
> intellectual treasure.
>  
> I have Iverson’s high-school textbook which uses the notation. You see the 
> notation it as APL, but in fact it was created as a way to describe a 
> computer architecture (the IBM 360 then in development) in a formalism that 
> allowed proofs of operation and implementation. I studied those books too. It 
> is not so uncommon that an at first bewildering notation can come to feel a 
> comfortable home. This is true of music, mathematics, emacs, and much more. 
> Rob Pike’s Ivy is APL themed if you want to explore that. The latest 
> descendent of APL is “J,” itself a descendent of “Dictionary APL” which was 
> Iverson’s effort to use ordinary notation to lower the initial threshold for 
> new programmers.
>  
> Michael
>  
> From: Lucio <lucio.d...@gmail.com>
> Date: Friday, August 19, 2016 at 10:23 PM
> To: golang-nuts <golang-nuts@googlegroups.com>
> Cc: Michael Jones <michael.jo...@gmail.com>, <axel.wagner...@googlemail.com>, 
> <rthornton...@gmail.com>
> Subject: Re: [go-nuts] Unary +
>  
>> 
>> 
>> On Saturday, 20 August 2016 02:29:17 UTC+2, Thomas Bushnell, BSG wrote:
>>> With all due respected to the illustrious Dr. Iverson, he was in loony-land 
>>> with his two versions of minus.
>>>  
>>>  
>> I take exception to the "loony-land" qualification of Dr Iverson's raised 
>> minus. I think it was immensely appropriate and sadly forgotten that APL 
>> introduced the brilliant idea of discarding operator precedence in favour of 
>> making functions themselves operators with NO associated precedence. The use 
>> of a raised minus to eliminate confusion was a sensible one, one Michael 
>> Jones further justifies in its use in teaching Algebra (I still smart when I 
>> remember my confusion in Algebra classes after the teacher dropped all minus 
>> and plus signs and the parentheses she'd used until then!).
>>  
>> Even sadder, I find the disappearance of RPN from hand-held calculators, for 
>> which I hold HP almost entirely responsible.
>>  
>> That APL is still available in some form or other I find emotionally,but 
>> sadly not economically, rewarding. My short liaison with the language has 
>> given me a perspective I still believe helped shape all of my computing 
>> experience since those late 1970 years.
>>  
>> Lucio.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com 
> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to