APL1957APL(a programming language) (array processing language) 
APL
パラダイム 配列処理
登場時期 1964年
設計者 ケネス・アイバーソン
開発者 ケネス・アイバーソン
型付け 動的型付け
主な処理系 IBM APL2, Dyalog APL, APL2000, Sharp APL, GNU APL
方言 A+, Dyalog APL, APLNext
影響を受けた言語 数学の表記法
影響を与えた言語 J, Mathematica
テンプレートを表示

概要

編集

APLAPL
 
IBM SelectricAPL使IBM 2741

1Unicode(Miscellaneous Technical)U+2336U+237AIBM SelectricDOS/VUnicode使

APL

19571962 "A Programming Language" 19641966IBM System/360OSOS/360APL\360 

APLFORTRAN

CP/M(CP/M80) APL\80 APL

1976Intel 8080MC6800APL[1]

IBM1980APL"WS-1"

APLJ1ASCII
' ( ) + , - . / : ; < = > ? [ ]
\ _ ¨ ¯ × ÷
 
APLキーボード配列

演算機能

編集

APLは他のプログラミング言語と比べ特徴的な演算機能を持つ。特に(他にはPL/Iなどで見られるが)スカラ値だけではなく配列も、式中の演算の直接の対象にできるという原始的なジェネリックプログラミングの機能がある点と、w:Fold (higher-order function)等に類似した高階関数に相当する機能がある点が特徴である。ここではAPLの基本的な演算機能について述べる。

関数と作用子

編集

functionoperatorAPLAPL2APL使operator

右から左

編集

使
3+2-1

((3+2)-1)
APL
(3+(2-1))


APL
1+2×3+4

(1+(2×3)+4)
APL
(1+(2×(3+4)))

一項と二項

編集

APL2使APLC *APL

 !
! 5

 120 使
2 ! 5

 10 (=5C2) 


配列演算

編集

APL 
1 2 3 + 4 5 6

 5 7 9 使
! 2 3 4

 2 6 24 

作用子

編集

 ()  () (outer product) 

 "." 
(関数1).(関数2)


9 8 7 +.× 6 5 4

 ×
9×6 8×5 7×4

 + 9×6 + 8×5 + 7×4  122 (9×6) + ((8×5) + (7×4)) 

21 .  +.× 使 +.× 2使 . 使

.
∘.(関数)


1 2 3 ∘.× 4 5 6 7


× 4 5 6 7
1 1 × 4 1 × 5 1 × 6 1 × 7
2 2 × 4 2 × 5 2 × 6 2 × 7
3 3 × 4 3 × 5 3 × 6 3 × 7

という計算が行われ

4 5 6 7
8 10 12 14
12 15 18 21

という2次元の配列を返す。

関連項目

編集

脚注

編集
  1. ^ Gates, Bill (January 31, 1976). “An Open Letter to Hobbyists”. Homebrew Computer Club Newsletter. http://www.digibarn.com/collections/newsletters/homebrew/V2_01/index.html 2018年4月29日閲覧。. 

外部リンク

編集