Main Page: Difference between revisions
Miraheze>Adám Brudzewsky No edit summary |
(get rid of conferences and activitites page) |
||
(38 intermediate revisions by 7 users not shown) | |||
Line 4: | Line 4: | ||
| style="background:#f9f9f9;border:1px solid #ddd;" colspan="2" | | | style="background:#f9f9f9;border:1px solid #ddd;" colspan="2" | | ||
{| style="border-spacing: 1em;" | {| style="border-spacing: 1em;" | ||
| style="width:50%;text-align:center;" | <span style="font-size:xx-large">Welcome to [[APL Wiki]],</span>< | |- | ||
[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles about APL that anyone can edit | | 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.<br> | |||
APL is an [ | See the [[overview|navigational overview]] of content. | ||
| [[File:APL logo.png|48px|link=APL logo]] | |||
| [[The name APL|'''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 15: | ||
| 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, | 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;> | <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, | 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">'''[[ | <p style="text-align:center">'''[[Introductions]] ∙ [[Learning resources]] ∙ [[Blogs]] ∙ [[Podcasts]] ∙ [[Videos]]'''</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 | <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 | APL is used by both hobbyists and application developers. There are active [[user groups and meetups]] online and all around the globe. There are also multiple online [[chat rooms and forums]]. | ||
<p style="text-align:center">'''[[Case studies]] ∙ [[ | <p style="text-align:center">'''[[Case studies]] ∙ [[Job listings]] ∙ [[Conferences]]'''</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 | [[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] | <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 [[ | 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 === | ||
With the introduction of [[tacit programming]], many functions can be expressed in fewer characters than even the shortest fitting name. For example <syntaxhighlight lang=apl inline>≠⊆⊢</syntaxhighlight> is but three characters, while you would need five for the name <code>Split</code>: | |||
With the introduction of [[tacit]] | |||
[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!] | ||
< | <syntaxhighlight lang=apl> | ||
','(≠⊆⊢)'comma,delimited,text' | ','(≠⊆⊢)'comma,delimited,text' | ||
┌─────┬─────────┬────┐ | ┌─────┬─────────┬────┐ | ||
│comma│delimited│text│ | │comma│delimited│text│ | ||
└─────┴─────────┴────┘ | └─────┴─────────┴────┘ | ||
</ | </syntaxhighlight> | ||
{{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" === | ||
[[John Scholes]] is famous for the following implementation of ''[[Conway's Game of Life]]'': | |||
[[John Scholes]] is famous for the following implementation of ''[[ | |||
[https://tryapl.org/? | [https://tryapl.org/?clear&q=%E2%8E%95%E2%86%90world%E2%86%902%202%202%202%E2%8A%A40%2012%205%202%204%201%20%E2%8B%84%20%E2%86%93%20%E2%8B%84%20%7B%E2%86%911%20%E2%8D%B5%E2%88%A8.%E2%88%A73%204%3D%2B%2F%2C%C2%AF1%200%201%E2%88%98.%E2%8A%96%C2%AF1%200%201%E2%88%98.%E2%8C%BD%E2%8A%82%E2%8D%B5%7D%20world&run Try it now!] | ||
< | <syntaxhighlight lang=apl> | ||
⎕←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 68: | Line 69: | ||
0 1 0 1 1 0 | 0 1 0 1 1 0 | ||
0 0 1 0 0 0 | 0 0 1 0 0 0 | ||
</ | </syntaxhighlight> | ||
{{Works in|[[Dyalog APL]], [[ngn/apl]]}} | {{Works in|[[Dyalog APL]], [[ngn/apl]]}} | ||
'''[[John Scholes' Conway's Game of Life|Full article…]]''' | |||
<p style="text-align:center">'''[[Simple examples|Further simple examples]] ∙ [[Advanced examples]]'''</p> | <p style="text-align:center">'''[[Simple examples|Further simple examples]] ∙ [[Advanced examples]]'''</p> | ||
|} | |} |
Latest revision as of 15:16, 8 August 2024
| ||||
Running APLTraditionally a commercial language, quite a few implementations are now free without feature limitations, several can be tried online, and many are open source. |
Hello worldTaking up a new programming language can be a daunting task. While it can appear cryptic at first, you can learn to read, write and remember APL with little effort. There is plenty of material to help you in the process. Introductions ∙ Learning resources ∙ Blogs ∙ Podcasts ∙ Videos | |||
Who uses it?APL is used by both hobbyists and application developers. There are active user groups and meetups online and all around the globe. There are also multiple online chat rooms and forums. |
ContributingAPL Wiki is an online open-content 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 its content. | |||
ExamplesAPL'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 delimiterWith the introduction of tacit programming, many functions can be expressed in fewer characters than even the shortest fitting name. For example ','(≠⊆⊢)'comma,delimited,text' ┌─────┬─────────┬────┐ │comma│delimited│text│ └─────┴─────────┴────┘ Works in: Dyalog APL
Conway's "Game of Life"John Scholes is famous for the following implementation of Conway's Game of Life: ⎕←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
|