## Places to start

Learning APL or new to Dyalog? Ask "silly" questions here, without fear...

### Places to start

On-line help and all Dyalog manuals are available at:

http://help.dyalog.com
http://docs.dyalog.com

An interactive Tutorial is available at:

http://tutorial.dyalog.com

And if you want to try apl, then

http://tryapl.com

will allow you to dip your toes into APL.

Another good place to start is the APL Wiki at http://aplwiki.com.
Jason|Dyalog

Posts: 22
Joined: Tue Sep 09, 2008 2:42 pm

### Re: Places to start

I was looking at APL Wiki and found the Convex Hull Algorithm. Being a newcomer to
dyalog I am not sure how I can implement the D function. Can you provide some help?
larry316

Posts: 16
Joined: Thu Dec 01, 2016 4:28 pm

### Re: Places to start

> ... APL Wiki ... Convex Hull Algorithm ... not sure how I can implement the D function

If I understand you correctly, all you need to do is to copy and paste Gianluigi's D function code from the APL Wiki http://aplwiki.com/Studio/ConvexHull#The_D_function into an edit window in Dyalog.
`      )ed ConvexHull`
Paste the code into the edit window, making sure you have only one occurrence of the function name "ConvexHull" in the first line.
JohnS|Dyalog

### Re: Places to start

Dear APLer,

I was lucky enough to be an employee at I.P.Sharp Associates when Ken Iverson joined the company around 1981. He developed a 3-day "Working Introduction to APL" course as well as a 3-day companion course for instructors, both of which I attended when given by Ken Iverson himself, and I went on to present the courses myself many times in London.

I was also lucky enough to work for 10 years for Dyadic Systems and latterly Dyalog Limited until 2003 during which time I absorbed a detailed understanding of Dyalog APL.

I set up a small APL company, Graeme Robertson Limited, in 2004 and produced a short course along the lines of Ken's introduction, "A Practical Introduction to APL 1 & APL 2", which proved quite popular. I also produced a far less popular but no less meaty course on the more advanced later additions introduced in Dyalog APL.

Both these courses are freely available as pdf files on my web site, http://robertson.uk.net, where you can also find an independent review by Rebecca Burriesci. The course notes are available in book form from Amazon. I am now (in 2017) closing my company and would like to send my remaining copies of these books (original price £9.99 and £29.99) free, except for the cost of post and packing, to anyone who may be interested to either learn/teach APL from scratch, or discover something of the more advanced features of Dyalog APL from a rationalized perspective. (Email me at graeme@robertson.uk.net for your free copy before they run out.)

For those who are amused to hear the best attempts of an ordinary person to express their inner beliefs about life, the universe and everything, may I suggest that you look at the Philosophy page on my web site where you will find a pdf version of my other (non-APL) book available on Amazon. Again I am happy to send this to anyone free on request for the cost of post and packing. I would only ask that, before concluding that this book is ridiculous, read first the other pdf work which is to be found under the Escher drawing on that page. Only then will you be in a proper position to argue that the last half of the book is utter rubbish. I don't think so, and I should be happy to debate any issues you may have arising from your reading of it.

May you live some happy adventures in body and mind as I did,
Graeme.
Graeme D Robertson
http://robertson.uk.net
GDR

Posts: 5
Joined: Thu Nov 26, 2009 9:34 am
Location: Basingstoke, UK

### Re: Places to start

I have been enjoying APL in business and personal life for 50 years.

I have personally experienced the evolution of the basic APL360 language through the years from simple vectors and matrices to nested data arrays and now objects and namespaces.

The beauty of DyalogAPL is that it includes all the functionality from all the various APL enhancements from the various dialects of APL languages .. PLUS several Dyalog-specific enhancements.

REQUEST:
I would like to see a visual "functionality map" that shows the DyalogAPL functional Taxonomy.

This would present the add-on enhancements and relationships for the full Dyalog platform.

This visualization would show the BASE APL Language and the various enhancements that have evolved into today's Modern DyalogAPL.

If I were to introduce DyalogAPL to a NEWBIE ... I might show them the "big picture" diagram, point to the CORE APL Language section, and say "Let's start here".

This is IOTA ⍳
It can generate a sequence of numbers.
Code: Select all
`⍳ 5   is    1  2  3  4  5`

Iverson's Notation as a tool of thought:
https://www.jsoftware.com/papers/tot.htm

Example of a visual architectural model:
https://www-03.ibm.com/services/ca/en/mobility/ourapproach.html

The diagram would show the logical parts of the DyalogAPL platform:
The core APL language. System Functions, System Variables, workspaces, functions, variables, namespaces, external interfaces (.NET, ODBC, HTTP, DCF Files, ARBIN, ⎕TRAP, DATA STRUCTURES, OBJECT STRUCTURES, etc.)

Welcome to Dyalog ... Here's a TAXONOMY of everything within the platform.

Thoughts?

Thanks!

//W
Woodley Butler
Automatonics, Inc.
http://www.APLcloud.com

woody

Posts: 140
Joined: Tue Dec 28, 2010 12:54 am
Location: Atlanta, Georgia USA

### Re: Places to start

Woody, I think your idea for a taxonomy map of Dyalog and how it relates to other APLs and/or provides a view of the "evolution" of a specific APL is A Good Idea and we will try to make it real.

However, I do not personally find that starting from a historical perspective is very useful when teaching APL. I also start around Iota and adding vectors to vectors, but I try to introduce it as if "this is just how it is" - almost as if it's the natural state of the world; there has always been APL, that's just how it is.

Another thing that I am trying to do in the introductory materials I am writing is introduce the concepts in the contexts in which they are useful, as opposed to in the order in which they were introduced to the language. The reason why these developments were made in Dyalog is because there was a use case for them, or they improved some aspect of the language.

I'll give 2 examples.

In the case of the rank operator, it is an incredibly useful generalisation of scalar extension. In contrast, bracket-axis is anomalous syntax and has a different definition depending on which of the limited primitives it applies to. It also does implicit transposition in some cases which is also a bit difficult to grok. See the webinar on The Rank Operator and Dyadic Transpose for more on that: https://dyalog.tv/Webinar/?v=zBqdeDJPPRc.

In the case of function trains, there is some debate as to whose purpose the extensions serve. Arguably, the language implementors who had the most interest in and use for them were also those with the power to have them implemented (I personally like them but I throw this point in for added nuance). I find that trains of up to around 5(+,-)2* carriages can be a useful way to extend your APL vocabulary in a way that you couldn't previously - you can write custom functions that resemble the core language in some sense, where you are generally unable to define your own primitive symbols.

While it is important and useful to include reference to APL history as both a learning aid (connecting concepts to stories and lineage can help with retention and improve understanding) and for the value it has in its own right, I wouldn't personally use it as the road map for introducing APL concepts to newcomers. Of course, this is just my personal opinion.

Having said all that, I probably would show it to newcomers at some point - just not the very first thing.

Cheers,
Rich

*in some cases, I use something like (+,[0.5]-) to add a new axis to keep the terms separate. Sometimes I wish one of comma or comma-bar would do that by itself, so I could write 1 2 3(+⍪-)4 5 6 and get a 2 row matrix with the added terms on top and the subtracted terms on bottom.
RichardP|Dyalog

Posts: 12
Joined: Fri Oct 12, 2018 3:05 pm

### Re: Places to start

Good points!

I guess we all learn, use and teach APL a little differently! ;-)

I took a stab at a draft diagram that positions Dyalog APL Features / Tools in a way that shows some sort of context.

It might be helpful for introducing Dyalog to newbies ...

Perhaps a PowerPoint slide where each feature / tool name flies into the page... one by one... during the presentation.

//W
Woodley Butler
Automatonics, Inc.
http://www.APLcloud.com

woody

Posts: 140
Joined: Tue Dec 28, 2010 12:54 am
Location: Atlanta, Georgia USA

### Re: Places to start

Yeah this is along the lines of what I was picturing as well. I was also reminded of those "scale of the universe" things like https://www.htwins.net/scale2/

Of course that type of interface isn't so useful in this case. Another resource along these lines (although this site uses very outdated technology) is Georgia State's Hyperphysics: http://hyperphysics.phy-astr.gsu.edu/hbase/hframe.html
RichardP|Dyalog

Posts: 12
Joined: Fri Oct 12, 2018 3:05 pm