Q&A nomenclature

This topic is specifically for discussions on the new APL64 Project currently in development. This topic is open for all to browse. However, to post, one must have a registered account on the APLDN forum only available to APL+Win licensee under a current APL+Win Subscription.

Moderators: Tech Support, phpbb_admin

Q&A nomenclature

Postby Davin Church » October 16th, 2018, 1:39 pm

In the Q&A doc you have a section entitled "Will the APL64 Project Extend the Range of APL+Win Primitive Operators?", but it sounds like you mean "primitive functions" here. Could you be a bit more explicit about the difference between "functions" and "operators"? I for one would like to see (and be able to code) "operators". By my definition of operators, I mean code or symbols that can take functions as operands and produce derived functions that can then process data arguments.
Davin Church
Posts: 661
Joined: February 24th, 2007, 1:46 am

Re: Q&A nomenclature

Postby Ajay Askoolum » October 16th, 2018, 2:59 pm

Do you mean something like this:
Code: Select all
      ⎕vr 'sum'
    ∇ Z←L sum R
[1]   Z←L+R

      ,+/(2 3) (90 100)
 92 103
      ,sum/(2 3) (90 100)
 92 103
      ,sum/(2 3) ((90 100) (2 3))
  92 102  5 6
Does it very rapidly become quite confusing?
Ajay Askoolum
Posts: 891
Joined: February 22nd, 2007, 2:16 am
Location: United Kingdom

Re: Q&A nomenclature

Postby Davin Church » October 16th, 2018, 3:12 pm

Nope - I mean like the difference between Each and Rho. Rho is a "function" - it takes data on one or both sides and returns data. Each is an "operator" - it takes a function (such as Rho) as an operand and thus creates a "Rho-Each" derived function, which can then be applied monadically or dyadically to (nested) data to return (nested) data. Each, by itself, cannot do anything to data (e.g. can you say "3¨4"?); it only applies to functions to modify them (technically, to be modified BY them).

APL+Win has few true operators. APL2, for example, has a few more and Dyalog has a number of them. Also, APL2 and Dyalog (among other systems) allow you to code your own user-defined operators in much the same way as you code user-defined functions (which I'd really like to be able to do in APL64).

In most other languages, they've taken to calling mathematical symbols "operators" and user-created code "functions", but that's not their correct definitions. APL has it right.
Davin Church
Posts: 661
Joined: February 24th, 2007, 1:46 am

Return to APL64 Project

Who is online

Users browsing this forum: No registered users and 1 guest