Main Page: Difference between revisions

Jump to navigation Jump to search
27 bytes removed ,  07:45, 12 September 2021
m
no edit summary
Miraheze>Adám Brudzewsky
No edit summary
mNo edit summary
(29 intermediate revisions by 7 users not shown)
Line 7: Line 7:
[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles about APL that anyone can edit
[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles about APL that anyone can edit
  ||  
  ||  
APL is an [https://en.wikipedia.org/wiki/Array_programming array-oriented programming language]. Its powerful, concise [[syntactic overview|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.  
APL is an [[wikipedia:Array_programming|array-oriented programming language]]. Its natural, concise [[APL syntax|syntax]] lets you develop shorter programs while thinking more about the problem you're trying to solve than how to express it to a computer.  
|}
|}


Line 13: Line 13:
| style="background:#f5fffa;border:1px solid #cef2e0;padding:0 1em" |
| 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>
<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, quite a few implementations are now free without feature limitations, several can be tried online, and many are [[List of open-source array languages|open source]].


<p style="text-align:center">'''[[Running APL]] ∙ [https://tryapl.org/ Try APL online]'''</p>
<p style="text-align:center">'''[[Running APL]] ∙ [https://tryapl.org/ Try APL online]'''</p>


| style="background:#f5faff;border:1px solid #cee0f2;padding:0 1em" |
| 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>
<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;>Hello world</h2>


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 a new programming language can be a daunting task. While it can appear cryptic at first, you can learn to [[semantic density|read]], write and [[mnemonics|remember]] APL with little effort. There is plenty of material to help you in the process.


<p style="text-align:center">'''[[Discovering APL]] ∙ [[Tutorials]] ∙ [[Template:APL_programming_language|Language overview]]'''</p>
<p style="text-align:center">'''[[Introductions]] ∙ [[Learning resources]] ∙ [[Language overview]]'''</p>
|- style="vertical-align:top"
|- style="vertical-align:top"
| style="background:#faf5ff;border:1px solid #e0cef2;padding:0 1em" |
| 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>
<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 it?</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]].
APL is used by both hobbyists and application developers. There are active [[:Category:user groups|user groups]] all around the globe, many of these hold regular in-person meet-ups. There are also multiple online [[forums]].


<p style="text-align:center">'''[[Case studies]] ∙ [[Community|Community overview]]'''</p>
<p style="text-align:center">'''[[Case studies]] ∙ [[Job listings]] ∙ [[Community|Community overview]]'''</p>


| style="background:#fff5fa;border:1px solid #f2cee0;padding:0 1em" |
| 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>
<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.
[[APL_Wiki:About|APL Wiki]] is an online open-content [[wikipedia:wiki|wiki]]; 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 [[APL_Wiki:Content_guidelines|its content]].
<p style="text-align:center">'''[[Contributing|How to contribute]] ∙ [[Special:NewPages|New pages]] ∙ [[Special:WantedPages| Wanted pages]] ∙ [https://en.wikipedia.org/wiki/Wiki What is a wiki?]'''</p>
<p style="text-align:center">'''[[Help:Contributing|How to contribute]] ∙ [[Special:NewPages|New pages]] ∙ [[Special:WantedPages| Wanted pages]]'''</p>
|-
|-


| colspan="2" style="border:1px solid #e2e2e2;padding:0 1em" |
| 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>
<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 [[Examples|the main examples article]].
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 ===
=== Split text by delimiter ===
{{Main|Examples#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 you would need five for the name <code>Split</code>:
With the introduction of [[tacit]] programming, many functions can be expressed in fewer characters that 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!]
[https://tryapl.org/?a=%27%2C%27%28%u2260%u2286%u22A2%29%27comma%2Cdelimited%2Ctext%27&run Try it now!]
Line 51: Line 50:
</source>
</source>
{{Works in|[[Dyalog APL]]}}
{{Works in|[[Dyalog APL]]}}
'''[[Simple examples#Split text by delimiter|Full explanation…]]'''


=== Conway's "Game of Life" ===
=== Conway's "Game of Life" ===
{{Main|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://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!]
[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 70: Line 69:
</source>
</source>
{{Works in|[[Dyalog APL]], [[ngn/apl]]}}
{{Works in|[[Dyalog APL]], [[ngn/apl]]}}
<p style="text-align:center">'''[[Examples|Further examples]]'''</p>
'''[[John Scholes' Conway's Game of Life|Full article…]]'''
 
<p style="text-align:center">'''[[Simple examples|Further simple examples]] ∙ [[Advanced examples]]'''</p>
|}
|}

Navigation menu