APL programming language
APL (for A Programming Language, or sometimes Array Processing Language) is a programming language invented in 1962 by Kenneth E. Iverson while at Harvard University. Iverson received the Turing Award in 1979 for his work.
 "APL, in which you can write a program to simulate shuffling a deck of cards and then dealing them out to several players in four characters, none of which appear on a standard keyboard."
 — David Given
The APL environment is called a workspace. In a workspace the user can define programs and data, i.e. the data values exists also outside the programs, and the user can manipulate the data without the necessity to define a program, for example:
The user can save the workspace with all values and programs. In any case, the programs are not compiled but interpreted.
APL is notorious for its use of a set of nonASCII symbols that are an extension of traditional arithmetic and algebraic notation. These cryptic symbols, some have joked, make it possible to construct an entire air traffic control system in two lines of code. Because of its condensed nature and nonstandard characters, APL has sometimes been termed a "writeonly language", and reading an APL program can feel like decoding an alien tongue. Because of the unusual character set, many programmers used special APL keyboardss in the production of APL code. Nowadays there are various ways to write APL code using only ASCII characters.
Iverson designed a successor to APL called J which uses ASCII "natively". So far there is a sole single source of J implementations: http://www.jsoftware.com/ Other programming languages offer functionality similar to APL. A+ is an open source programming language with many commands identical to APL.
Here's a "Hello World" program in APL:
X[X+.¬' ';]Here's a program that finds all prime numbers from 1 to R:
 creates a vector containing integers from 1 to R (if R = 6 at the beginning of the program, is 1 2 3 4 5 6)
 Drop first element of this vector ( function), i.e. 1. So is 2 3 4 5 6
 Set R to the vector (, assignment operator)
 Generate outer product of R multiplied by R, i.e. a matrix which is the multiplication table of R by R (function)
 Build a vector the same length as R with 1 in each place where the corresponding number in R is in the outer product matrix (, set inclusion function), i.e. 0 0 1 0 1
 Logically negate the values in the vector (change zeros to ones and ones to zeros) (, negation function), i.e. 1 1 0 1 0
 Select the items in R for which the corresponding element is 1 ( function), i.e. 2 3 5
perl le '$_ = 1; (1 x $_) !~ /^(11+)\\1+$/ && print while $_++'
Table of contents 
2 References 3 External links 
APL symbols and keyboard layout
All APL symbols are present in Unicode:
It may be required to significantly reconfigure your browser in order to display Unicode fonts.
'
(
)
+
,

.
/
:
;
<
=
>
?
[
]
\\
_
¨
¯
×
÷
←
↑
→
↓
∆
∇
∘
∣
∧
∨
∩
∪
∼
≠
≤
≥
≬
⊂
⊃
⌈
⌊
⊤
⊥
⋆
⌶
⌷
⌸
⌹
⌺
⌻
⌼
⌽
⌾
⌿
⍀
⍁
⍂
⍃
⍄
⍅
⍆
⍇
⍈
⍉
⍊
⍋
⍌
⍍
⍎
⍏
⍐
⍑
⍒
⍓
⍔
⍕
⍖
⍗
⍘
⍙
⍚
⍛
⍜
⍝
⍞
⍟
⍠
⍡
⍢
⍣
⍤
⍥
⍦
⍧
⍨
⍩
⍪
⍫
⍬
⍭
⍮
⍯
⍰
⍱
⍲
⍳
⍴
⍵
⍶
⍷
⍸
⍹
⍺
⎕
○
References
 A Programming Language (1962), by Kenneth E. Iverson
 History of Programming Languages, chapter 14
External links
Programming languages Ada  AWK  BASIC C  C++  C#  COBOL  ColdFusion  Common Lisp  Delphi  Fortran  IDL  Java  JavaScript  Lisp  Perl  PHP  Prolog  Pascal  Python  SAS  SQL  Visual Basic  More programming languages Edit this template