Main Page: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Adám Brudzewsky
No edit summary
(get rid of conferences and activitites page)
 
(93 intermediate revisions by 9 users not shown)
Line 1: Line 1:
__NOTITLE__
__NOTOC__
__NOTOC__
== {{SITENAME}} main page ==
{| style="border-spacing: 1ex;"
This wiki is all about APL, an [https://en.wikipedia.org/wiki/Array_programming array-oriented programming language] that will change the way you think about problems and data. With a powerful, concise [[syntax]], APL 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. You can [https://tryapl.org try APL] now online or [[run apl|download it for free]].
| 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.<br>
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.  
|}


== Who are you? ==
|- style="vertical-align:top"
[[I am new to programming]]
| 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, 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]].


[[I am a programmer but new to APL]]
<p style="text-align:center">'''[[Running APL]] ∙ [https://tryapl.org/ Try APL online]'''</p>


[[Intermediate APL | I want to learn intermediate 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;>Hello world</h2>


[[Modern APL for old APLers | I'm an old APLer who wants to learn modern APL]]
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.


== Who uses APL? ==
<p style="text-align:center">'''[[Introductions]] ∙ [[Learning resources]] ∙ [[Blogs]] ∙ [[Podcasts]] ∙ [[Videos]]'''</p>
There are many [[case studies]] of both hobby and real-world APL applications. Many of these are still active today.
|- 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 it?</h2>
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]].


There is an active [[APL Orchard|APL chat room on Stack Exchange]].
<p style="text-align:center">'''[[Case studies]] ∙ [[Job listings]] ∙ [[Conferences]]'''</p>


There are active [[:Category:user groups|user groups]] all around the globe, many of these hold regular in-person meet-ups.
| 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: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">'''[[Help:Contributing|How to contribute]] ∙ [[Special:NewPages|New pages]] ∙ [[Special:WantedPages| Wanted pages]]'''</p>
|-


== Examples ==
| colspan="2" style="border:1px solid #e2e2e2;padding:0 1em" |
APL's terseness lends to substantial programs begin expressable in a small space, relative to many other programming languages. Here are some examples:
<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>
{| class="wikitable"
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 || <code class="language-apl">{|','(≠⊆⊢)'comma,delimited,text'</code>
=== 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>:
| [http://dfns.dyalog.com/n_life.htm Conway's "Game of Life"] || <code class="language-apl">{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}</code>
 
|-
[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│
└─────┴─────────┴────┘
</syntaxhighlight>
{{Works in|[[Dyalog APL]]}}
'''[[Simple examples#Split text by delimiter|Full explanation…]]'''
 
=== Conway's "Game of Life" ===
[[John Scholes]] is famous for the following implementation of ''[[Conway's Game of Life]]'':


== Running APL ==
[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!]
''Main article: [[Running APL]]''
<syntaxhighlight lang=apl>
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.
      ⎕←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
</syntaxhighlight>
{{Works in|[[Dyalog APL]], [[ngn/apl]]}}
'''[[John Scholes' Conway's Game of Life|Full article…]]'''


{{APL programming language}}
<p style="text-align:center">'''[[Simple examples|Further simple examples]] ∙ [[Advanced examples]]'''</p>
|}

Latest revision as of 15:16, 8 August 2024


Welcome to APL Wiki,

458 articles about APL that anyone can edit.
See the navigational overview of content.

APL logo.png APL is an array-oriented programming language. Its natural, concise 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.

Running APL

Traditionally a commercial language, quite a few implementations are now free without feature limitations, several can be tried online, and many are open source.

Running APLTry APL online

Hello world

Taking 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.

IntroductionsLearning resourcesBlogsPodcastsVideos

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.

Case studiesJob listingsConferences

Contributing

APL 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.

How to contributeNew pages Wanted pages

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 you would need five for the name Split:

Try it now!

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

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

Full article…

Further simple examplesAdvanced examples