Main Page: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (70 revisions imported: Migrate from miraheze)
m (typo)
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<strong>MediaWiki has been installed.</strong>
__NOTITLE__
__NOTOC__
{| style="border-spacing: 1ex;"
| style="background:#f9f9f9;border:1px solid #ddd;" colspan="2" |
{| style="border-spacing: 1em;"
| style="width:50%;text-align:center;" | <span style="font-size:xx-large">Welcome to [[APL Wiki]],</span></br>
[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles about APL that anyone can edit
||
APL is an [[wikipedia:Array_programming|array-oriented programming language]]. Its powerful, concise [[APL syntax|syntax]] lets you develop shorter programs that enable you to think more about the problem you're trying to solve than how to express it to a computer.
|}


Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
|- style="vertical-align:top"
| style="background:#f5fffa;border:1px solid #cef2e0;padding:0 1em" |
<h2 style="margin:.75em 0; background:#cef2e0; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; color:#000; padding:0.2em 0.4em;">Running APL</h2>
Traditionally a commercial language, there are now quite a few implementations available to download for free without feature limitations, and several of these can be tried online without installing anything.


== Getting started ==
<p style="text-align:center">'''[[Running APL]] ∙ [https://tryapl.org/ Try APL online]'''</p>
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
 
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
| style="background:#f5faff;border:1px solid #cee0f2;padding:0 1em" |
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
<h2 style="margin:0.75em 0; background:#cedff2; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; color:#000; padding:0.2em 0.4em;>Introduction to APL</h2>
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
 
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
Taking up a new programming language can be a daunting task. While it can appear cryptic at first, APL is actually very easy to learn and [[semantic density|read]]. A few introductory guides have been created to help you in the process.
 
<p style="text-align:center">'''[[Discovering APL]] ∙ [[Learning resources]] ∙ [[Language overview]]'''</p>
|- style="vertical-align:top"
| style="background:#faf5ff;border:1px solid #e0cef2;padding:0 1em" |
<h2 style="margin:0.75em 0; background:#ddcef2; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #afa3bf; color:#000; padding:0.2em 0.4em">Who uses APL?</h2>
APL has gained traction among both hobbyists and and real-world application developers. There are active [[:Category:user groups|user groups]] all around the globe, many of these hold regular in-person meet-ups. There is also a popular online [[APL Orchard|APL chat room]].
 
<p style="text-align:center">'''[[Case studies]] ∙ [[Community|Community overview]]'''</p>
 
| style="background:#fff5fa;border:1px solid #f2cee0;padding:0 1em" |
<h2 style="margin:0.75em 0; background:#f2cedd; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #bfa3af; color:#000; padding:0.2em 0.4em">Contributing</h2>
APL Wiki is an online open-content collaborative knowledge base; that is, a voluntary association of individuals and groups working to develop a common knowledge resource. The structure of the project allows anyone with an Internet connection to alter its content.
<p style="text-align:center">'''[[Help:Contributing|How to contribute]] ∙ [[Special:NewPages|New pages]] ∙ [[Special:WantedPages| Wanted pages]] ∙ [[wikipedia:Wiki|What is a wiki?]]'''</p>
|-
 
| colspan="2" style="border:1px solid #e2e2e2;padding:0 1em" |
<h2 style="margin:0.75em 0; background:#eeeeee; border:1px solid #ddd; color:#222; padding:0.2em 0.4em; font-size:120%; font-weight:bold; font-family:inherit;">Examples</h2>
APL's terseness means that substantial programs are expressible in a small space, relative to many other programming languages. Below are just a taste. Many more, and fully explained, examples are in the [[simple examples]] article.
=== Split text by delimiter ===
With the introduction of tacit programming, many functions can be expressed in fewer characters than even the shortest fitting name. For example <source lang=apl inline>≠⊆⊢</source> is but three characters, while would need five for the name <code>Split</code>:
 
[https://tryapl.org/?a=%27%2C%27%28%u2260%u2286%u22A2%29%27comma%2Cdelimited%2Ctext%27&run Try it now!]
<source lang=apl>
      ','(≠⊆⊢)'comma,delimited,text'
┌─────┬─────────┬────┐
│comma│delimited│text│
└─────┴─────────┴────┘
</source>
{{Works in|[[Dyalog APL]]}}
Now read [[Simple examples#Split text by delimiter|the full explanation]]…
 
=== Conway's "Game of Life" ===
[[John Scholes]] is famous for the following implementation of ''[[wikipedia:Conway's Game of Life|Conway's Game of Life]]'':
 
[https://tryapl.org/?a=%u22A2world%u21902%202%202%202%u22A40%2012%205%202%204%201&run&a=%7B%u21911%20%u2375%u2228.%u22273%204%3D+/%2C%AF1%200%201%u2218.%u2296%AF1%200%201%u2218.%u233D%u2282%u2375%7D%20world&run Try it now!]
<source lang=apl>
      ⊢world←2 2 2 2⊤0 12 5 2 4 1
0 1 0 0 0 0
0 1 1 0 1 0
0 0 0 1 0 0
0 0 1 0 0 1
      {↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵} world
1 1 0 1 0 0
0 1 1 1 0 0
0 1 0 1 1 0
0 0 1 0 0 0
</source>
{{Works in|[[Dyalog APL]], [[ngn/apl]]}}
Now read the [[Conway's Game of Life|full article]]…
 
<p style="text-align:center">'''[[Simple examples|Further simple examples]] ∙ [[Advanced examples]]'''</p>
|}

Revision as of 16:37, 21 November 2019


Welcome to APL Wiki,

447 articles about APL that anyone can edit

APL is an array-oriented programming language. Its powerful, concise syntax lets you develop shorter programs that enable you to think more about the problem you're trying to solve than how to express it to a computer.

Running APL

Traditionally a commercial language, there are now quite a few implementations available to download for free without feature limitations, and several of these can be tried online without installing anything.

Running APLTry APL online

Introduction to APL

Taking up a new programming language can be a daunting task. While it can appear cryptic at first, APL is actually very easy to learn and read. A few introductory guides have been created to help you in the process.

Discovering APLLearning resourcesLanguage overview

Who uses APL?

APL has gained traction among both hobbyists and and real-world application developers. There are active user groups all around the globe, many of these hold regular in-person meet-ups. There is also a popular online APL chat room.

Case studiesCommunity overview

Contributing

APL Wiki is an online open-content collaborative knowledge base; that is, a voluntary association of individuals and groups working to develop a common knowledge resource. The structure of the project allows anyone with an Internet connection to alter its content.

How to contributeNew pages Wanted pagesWhat is a wiki?

Examples

APL's terseness means that substantial programs are expressible in a small space, relative to many other programming languages. Below are just a taste. Many more, and fully explained, examples are in the simple examples article.

Split text by delimiter

With the introduction of tacit programming, many functions can be expressed in fewer characters than even the shortest fitting name. For example ≠⊆⊢ is but three characters, while would need five for the name Split:

Try it now!

      ','(≠⊆⊢)'comma,delimited,text'
┌─────┬─────────┬────┐
│comma│delimited│text│
└─────┴─────────┴────┘
Works in: Dyalog APL

Now read the full explanation

Conway's "Game of Life"

John Scholes is famous for the following implementation of Conway's Game of Life:

Try it now!

      ⊢world←2 2 2 2⊤0 12 5 2 4 1
0 1 0 0 0 0
0 1 1 0 1 0
0 0 0 1 0 0
0 0 1 0 0 1
      {↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵} world
1 1 0 1 0 0
0 1 1 1 0 0
0 1 0 1 1 0
0 0 1 0 0 0
Works in: Dyalog APL, ngn/apl

Now read the full article

Further simple examplesAdvanced examples