APL Wiki:About
For many years APL Wiki was maintained by Kai Jäger as a MoinMoin wiki site. In 2019, APL Wiki was reborn as a MediaWiki site with content more in the style of Wikipedia. It is now maintained by Richard Park, but is not directly affiliated with any particular individuals, companies, or organisations. Migration of content from the old APL Wiki is ongoing.
This wiki is a central repository and general information wiki for the APL programming language. There may be pages regarding other languages in the array-oriented and APL family (such as J and K), but these pages should be from the perspective of APL (as they could likely have entire wikis in their own rights).
Contributing
We welcome any and all contributions to APL Wiki, as long as they adhere to the general content standard as observed in existing pages. Currently, many links lead to pages that as of yet do not exist. Creating and populating these missing pages is especially appreciated.
MediaWiki documentation applies. Especially useful for you as a contributor are:
- Editing pages
- Starting a new page
- Links
- Formatting, but please follow the below guidelines.
Inline APL code
Inline code is used for single primitives and short expressions and uses the format
<source lang=apl inline>(2=+⌿0=N∘.|N)/N←⍳100</source>
which results in
(2=+⌿0=N∘.|N)/N←⍳100
APL code blocks
For session transcripts, function definitions and lorger expressions, use code blocks like
<source lang=apl> (2=+⌿0=N∘.|N)/N←⍳100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 </source>
which results in:
(2=+⌿0=N∘.|N)/N←⍳100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Optionally, you can indicate one or more APL dialects which are able to run the code by using a special template immediately after the source tag, like
<source lang=apl> {(2=+⌿0=⍵∘.|⍵)/⍵}⍳100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 </source> {{Works in|[[Dyalog APL]], [[dzaima/APL]], [[GNU APL]], [[ngn/APL]]}}
which results in:
{(2=+⌿0=⍵∘.|⍵)/⍵}⍳100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
You can also include a link to TryAPL or Try It Online right before the source tag, for example
[https://tryapl.org/?a=%7B%282%3D+%u233F0%3D%u2375%u2218.%7C%u2375%29/%u2375%7D%u2373100&run Try it now!] <source lang=apl> {(2=+⌿0=⍵∘.|⍵)/⍵}⍳100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 </source>
which results in:
{(2=+⌿0=⍵∘.|⍵)/⍵}⍳100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Primitives and other built-ins
When creating a page for a primitive function, operator, or quad name, begin the page with the following template:
{{Built-in|Log|⍟}}
This inserts the text
Log (
⍟
)
and also inserts a nice big illustration of the glyph on the page:
At the bottom such pages, include {{APL built-ins}}
and edit that template if the page you're creating isn't already listed there.
Dialects
Begin your page about an APL dialect with the Infobox array language info box. These are all the optional parameters it supports:
{{ | "title" = | "developer" = | "released" = | "latest release version" = | "withdrawn" = | "array model" = | "index origin" = | "function styles" = | "numeric types" = | "unicode support" = | "file ext" = | "implementation language" = | "implementation languages" = | "platform" = | "platforms" = | "operating system" = | "operating systems" = | "license" = | "website" = | "download" = | "documentation" = | "influenced by" = | "influenced" = }}
Have a look at the existing dialect pages, e.g. Dyalog APL, to see how these values are used, Try to fill in as many as you can (but use only one of each singular/plural pair). You only need to use title
if the language title differs from the page title (e.g. for technical reason like the inability to create a page that begins with a lowercase letter). In that case, you may also want to begin the page with {{Actually|real name}}
where real name
should be the proper name of the dialect.
At the bottom of the page, include {{APL programming language}}
and edit that template if the dialect you're creating a page about isn't already listed there.
Mentioning subjects that have their own page
It is fine for a page to have a section about a subject that also has its own page. When that happens, begin the section with {{Main|subject}}
where subject
is the target page title. Don't include double brackets (as a page link) — it is done for you.
Pages about People, organisations, and what they do
Insert {{APL community}}
at the very bottom of the page, and edit that template if the page you're creating isn't already listed there.
APL community [edit] | |
---|---|
Activities | Conferences ∙ User groups and meetups ∙ Iverson Award ∙ Exercises |
Chat rooms and forums | APL Farm ∙ APL Orchard ∙ APL Wiki |
People | Phil Abrams ∙ Brian Becker ∙ Bob Bernecky ∙ Larry Breed ∙ Charles Brenner ∙ Jim Brown ∙ Adám Brudzewsky ∙ Gitte Christensen ∙ Peter Donnelly ∙ John Earnest ∙ Adin Falkoff ∙ Garth Foster ∙ Lib Gibson ∙ Aaron Hsu ∙ Roger Hui ∙ Ken Iverson ∙ Morten Kromberg ∙ Dick Lathwell ∙ Marshall Lochbaum ∙ Eugene McDonnell ∙ Roger Moore ∙ Trenchard More ∙ Alan Perlis ∙ Raghu Ranganathan ∙ Henry Rich ∙ Al Rose ∙ John Scholes ∙ Ian Sharp ∙ Bob Smith ∙ Geoff Streeter ∙ Joey Tuttle ∙ Arthur Whitney |
Other | APL Trust ∙ APL Quote Quad ∙ Blogs ∙ Books ∙ Case studies ∙ Famous APL users ∙ Humour ∙ Jobs ∙ Merchandise ∙ Papers ∙ Podcasts ∙ TryAPL ∙ Try It Online ∙ Video channels |