8

Wikipedia on naming conventions in programming states (without source):

In APL dialects, the delta (Δ) is used between words, e.g. PERFΔSQUARE (…)

This is an unusual choice, but I notice that ECMA-17 says:

(…) in certain applications there is a need for a graphical representation of the control characters which are normally non-printing characters.

(…)

Code position Character Pictorial
repr.
Alphanumeric
repr.
2/0 SPACE SP
7/15 DELETE DT

Both the standard and the first modern APL implementation became available in '68, but the standard described existing usage, and it would make sense to use an existing substitute character for internal "spaces" in names, since space and juxtaposition has syntactic significance in APL.

Is there any indication that APL's usage of for separating words in identifiers originates in common usage as a control picture for space? Alternatively, is there any indication of another origin of APL's unusual choice?

11
  • Now that's interesting. Didn't know about ECMA-17, but remember next to all of them (sans NIL and SPACE) from several early terminal (vector based) of that time.
    – Raffzahn
    Feb 20, 2023 at 11:03
  • 1
    Eons ago, one of my college lecturers used to write small triangles underneath a line to indicate spaces when he wrote Fortran code on paper or a black/white board. I think I have seen this used in some computer language books of the era. Other books from that era used to use a lower case b with a slash through it to indicate spaces in a computer program. Using triangles this way is something I picked up then & still occasionally use.
    – Fred
    Feb 20, 2023 at 12:11
  • 3
    @WayneConrad - downticks () or upticks ()? (huh, the unicode "TOP SQUARE BRACKET" (shown first) is at the "top" of the character box, there's apparently no similar character to the "BOTTOM SQUARE BRACKET" at the bottom but with the ticks going down ...) (I've always used the one at the bottom with the ticks going up, and I'm finding this question interesting because though I used the delta as a "word separator" in APL identifiers I never knew it had a more general meaning.)
    – davidbak
    Feb 20, 2023 at 17:20
  • 1
    @davidbak I use downticks as shown in "TOP SQUARE BRACKET" , but unlike the unicode character, my horizontal line is lowered as it is in "BOTTOM SQUARE BRACKET". But it's possible I've misremembered the IBM standard, and it's supposed to be upticks when I'm filling out my COBOL coding form. Feb 20, 2023 at 17:28
  • 1
    @WayneConrad I do as well only remember 'upticks' for space tepresentation wenn needed.
    – Raffzahn
    Feb 20, 2023 at 18:56

1 Answer 1

6

Some observations, not an entire answer.

In APL\360, only upper case letters, underlined upper case letters, and digits were allowed in user-defined names.

(There were a couple of exceptions: TΔfunction and SΔfunction, for program control, as pointed out by @Adam in comments. This does not seem to imply general use of delta in names)

By the time of APL2 (page 12) delta and underlined delta have been added, along with underscore and the negative symbol, and possibly lower case letters.

The presence of both underscore and delta suggest to me that this wasn't the 'unusual choice' of the OP's wording, since the usual choice -- underscore -- is catered for. That doesn't give the reason for including delta, but (opinion) I am inclined to not believe that its due to its use as a conventional space indication.

Indeed, the use of delta in actual programs seems contrary to its use of a conventional space mark. For all other space indications, we're supposed to understand that the mark in the manual is not what you see on the equipment.

Lastly, nothing in the linked APL2 manual suggests that delta is intended as a separator; it's just a valid character in names, of equal standing with the 'normal' letters. You can start a name with delta, or even use it as a name by itself.

6
  • 1
    Note that in APL\360, S∆MYPROGRAM and T∆MYPROGRAM were used for Stop and Trace control of MYPROGRAM.
    – Adám
    Feb 20, 2023 at 23:20
  • 1
    @Adam - Are those system commands or did they appear in programs?
    – dave
    Feb 20, 2023 at 23:22
  • They were just special variables, so they could appear in programs.
    – Adám
    Feb 21, 2023 at 5:34
  • @Adam - is there a manual in which they appear? I didn't find a mention. Thanks.
    – dave
    Feb 21, 2023 at 13:11
  • 1
    Yes: trace control and stop control.
    – Adám
    Feb 21, 2023 at 16:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .