Main Page: Difference between revisions

Jump to navigation Jump to search
2,346 bytes added ,  16:37, 21 November 2019
m
typo
Miraheze>Adám Brudzewsky
m (typo)
(40 intermediate revisions by 5 users not shown)
Line 1: Line 1:
__NOTITLE__
__NOTOC__
__NOTOC__
This wiki is all about APL, an [https://en.wikipedia.org/wiki/Array_programming array-oriented programming language]. It has a powerful, concise [[syntactic overview|syntax]] that lets you develop shorter programs that enable you to think more about the problem you're trying to solve rather than how to express it to a computer.  
{| 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.  
|}


== Running APL ==
|- style="vertical-align:top"
{{Main|Running APL}}
| 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.


Traditionally a commercial language, there are now quite a few APL dialects available to download for free without feature limitations, and most of these can be tried online without installing anything.
<p style="text-align:center">'''[[Running APL]] ∙ [https://tryapl.org/ Try APL online]'''</p>


== Introduction to APL ==
| style="background:#f5faff;border:1px solid #cee0f2;padding:0 1em" |
<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>


{{Main|Tutorials}}
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.


Taking up APL can ba a daunting task, but a few introductory guides have been created to help 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]].


* [[I am new to programming]]
<p style="text-align:center">'''[[Case studies]] ∙ [[Community|Community overview]]'''</p>


* [[I am a programmer but new to APL]]
| 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>
|-


* [[Intermediate APL | I want to learn intermediate APL]]
| 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>
* [[Modern APL for old APLers | I'm an old APLer who wants to learn modern APL]]
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 ===
== Who uses APL? ==
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>:
There are many [[case studies]] of both hobby and real-world APL applications.
 
There is a popular [[APL Orchard|APL chat room on Stack Exchange]].
 
There are active [[:Category:user groups|user groups]] all around the globe, many of these hold regular in-person meet-ups.
 
== Examples ==
{{Main|Examples}}


APL's terseness means that substantial programs are expressable in a small space, relative to many other programming languages. Here are some examples:
=== Split text by delimiter ===
[https://tryapl.org/?a=%27%2C%27%28%u2260%u2286%u22A2%29%27comma%2Cdelimited%2Ctext%27&run Try it now!]
[https://tryapl.org/?a=%27%2C%27%28%u2260%u2286%u22A2%29%27comma%2Cdelimited%2Ctext%27&run Try it now!]
<source lang=apl>
<source lang=apl>
Line 41: Line 50:
</source>
</source>
{{Works in|[[Dyalog APL]]}}
{{Works in|[[Dyalog APL]]}}
Now read [[Simple examples#Split text by delimiter|the full explanation]]…


=== Conway's "Game of Life" ===
=== Conway's "Game of Life" ===
[[John Scholes]] is famous for the following implementation of 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://tio.run/##SyzI0c1Lz/v//1Hf1EdtE8rzi3JSgLSRAhg@6lpioGBopGAK5JgoGHJBFD3qXQNlVT9qm2io8Kh366OOFXqPOpYbK5jYauvrHFpvqADU96hjht6jrmnIvJ69j7qagOprFcA2/f8PAA Try it online!]
[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>
<source lang=apl>
       ⎕←world←2 2 2 2⊤0 12 5 2 4 1
       ⊢world←2 2 2 2⊤0 12 5 2 4 1
0 1 0 0 0 0
0 1 0 0 0 0
0 1 1 0 1 0
0 1 1 0 1 0
Line 59: Line 69:
</source>
</source>
{{Works in|[[Dyalog APL]], [[ngn/apl]]}}
{{Works in|[[Dyalog APL]], [[ngn/apl]]}}
Now read the [[Conway's Game of Life|full article]]…


== Contributing ==
<p style="text-align:center">'''[[Simple examples|Further simple examples]] ∙ [[Advanced examples]]'''</p>
{{Main|APL_Wiki:About#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. APL Wiki is not directly affiliated with any particular individuals, companies, or organisations.
 
{{APL programming language}}
{{APL community}}
13

edits

Navigation menu