APL İlkel Fonksiyonlar ve Operatörler

Orkun Programlama Dili sözcük seçimi için referans tablo. APL sembolik notasyonu incelenir.

~55 ilkel fonksiyon + ~16 operatör + denetim sözcükleri · Dyalog APL
← Programlama Dili Projesine Dön
APL tasarım notu: APL'de geleneksel anlamda "anahtar sözcük" yoktur. Dil, sembolik ilkel fonksiyonlar üzerine kuruludur. Her sembol tek karakterde bir veya iki anlam taşır: tek argümanlı (monadik) ve iki argümanlı (dyadik) kullanım. Orkun açısından incelenecek olan bu yoğun sembol tasarımıdır.
Aritmetik ve Matematiksel Fonksiyonlar 10
SembolAdMonadik (tek arg.)Dyadik (iki arg.)
+PlusEşlenik (karmaşık sayı)Toplama
-MinusSayıyı tersine çevirirÇıkarma
×Timesİşaret (-1, 0, 1)Çarpma
÷DivideTersini alır (1÷x)Bölme
*Stare üssü (e^x)Üs alma (x^y)
LogDoğal logaritmay tabanında x logaritması
CirclePi ile çarpar (π×x)Trigonometrik fonksiyonlar (sol arg. fonksiyon seçer)
!FactorialFaktöriyel (n!)Kombinasyon sayısı C(y,x)
|StileMutlak değerMod (kalan)
?Query0–x arası rastgele sayıy'den x tane rastgele öğe seçer
Karşılaştırma ve Mantıksal Fonksiyonlar 10
SembolAdMonadikDyadik
=EqualEşitlik (0 veya 1)
Not EqualEşit değil
<LessKüçüktür
Less EqualKüçük veya eşit
>GreaterBüyüktür
Greater EqualBüyük veya eşit
MatchDerinlik (iç içe seviye)Tam eşleşme denetimi
Not MatchToplam eleman sayısıEşleşmeme denetimi
AndMantıksal VE; OKEK (tam sayı)
OrMantıksal VEYA; OBEB (tam sayı)
NandMantıksal NAND
NorMantıksal NOR
~TildeMantıksal DEĞİLKüme çıkarma (x'den y'yi çıkar)
Dizi Oluşturma ve Şekillendirme 10
SembolAdMonadikDyadik
Iota0'dan x-1'e dizin üretirx'in y içindeki ilk konumunu bulur
WhereDoğru (1) öğelerin indekslerini verir
RhoDizinin boyutlarını (şeklini) verirx boyutlarında y içerikli dizi oluşturur
,CommaÇok boyutlu diziyi düzleştirirDizileri yatay birleştirir
Comma BarDiziyi sütun vektörüne dönüştürürDizileri dikey birleştirir
TakeDiziyi tek elemanlıdan büyüterek karıştırırx eleman alır (baştan veya sondan)
DropDiziyi iç içe katmandan çıkarırx eleman bırakır (baştan veya sondan)
Circle StileDiziyi tersine çevirirx kadar döndürür
Circle Barİlk eksen boyunca tersine çevirirİlk eksen boyunca döndürür
TransposeDiziyi transpoz ederEksenleri x sırasına göre yeniden düzenler
Seçme, Arama ve Sıralama 9
SembolAdMonadikDyadik
EncloseDiziyi tek skaler öğeye sararKoşula göre bölme
Discloseİlk öğeyi açarDerin dizinde konuma göre seçer
NestSkaler değilse sarmalar, değilse bırakırKoşullu bölme (ayrık)
EpsilonDiziyi tamamen düzleştirirÜyelik denetimi
Findx'in y içindeki başlangıç konumlarını bulur
Grade UpArtan sıralamada indeksleri verirx sıralamasında y'yi sıralar
Grade DownAzalan sıralamada indeksleri verirx sıralamasında y'yi ters sıralar
FloorAşağı yuvarlarMinimum değer
CeilingYukarı yuvarlarMaksimum değer
Kodlama ve Biçimleme 6
SembolAdMonadikDyadik
Down Tackx tabanında y'yi çözer (decode)
Up Tacky'yi x tabanında kodlar (encode)
FormatDiziyi karaktere dönüştürürBiçim belirterek dönüştürür
ExecuteDizeyi APL ifadesi olarak çalıştırır
Quad DivideMatrisin tersini alırMatris bölmesi (x\y)
ZildeBoş sayısal vektör sabiti
Kimlik ve Bağlam Sembolleri 6
SembolAdAçıklama
Right TackSağ argümanı döndürür (kimlik); fonksiyon uygulama
Left TackSol argümanı döndürür
AlphaDfn (tanımlı fonksiyon) içinde sol argümanı temsil eder
OmegaDfn içinde sağ argümanı temsil eder
DelGeleneksel fonksiyon tanımı başlatır/bitirir
QuadSistem fonksiyonu öneki; değerlendirilmiş giriş/çıkış
Quote-QuadKarakter (değerlendirilmemiş) giriş/çıkış
Operatörler (Üst Düzey Fonksiyonlar) 16

APL operatörleri fonksiyon alıp yeni fonksiyon üretir (higher-order functions).

SembolAdAçıklama
/Reducef/ : fonksiyonu vektör üzerinde katlar (örn. +/ toplar)
Reduce Firstİlk eksen boyunca katlar
\ScanKümülatif katlar (prefix sum için +\)
Scan Firstİlk eksen boyunca kümülatif katlar
¨EachFonksiyonu iç içe dizinin her öğesine uygular
CommuteArgümanları yer değiştirir; monadik: kendisiyle dyadik uygular
PowerFonksiyonu n kez uygular; ⍣≡ sabit noktaya ulaşana dek
∘.Outer ProductDış çarpım; iki dizinin tüm çiftlerine fonksiyon uygular
Composeİki fonksiyonu birleştirir (f∘g = f(g(x)))
Rank / AtopFonksiyonu belirli boyut derecesine uygular
OverÖnce g uygular, sonra f(g(x), g(y))
@AtSeçilen konumlara fonksiyon uygular
KeyAnahtara göre gruplama; SQL GROUP BY karşılığı
StencilKayan pencere (sliding window) uygulama
VariantFonksiyon seçeneği ayarlar
&SpawnEş zamanlı iş parçacığı başlatır
Denetim Yapıları (Dyalog APL) ~24
SözcükAçıklama
:If / :ElseIf / :Else / :EndIfKoşullu yürütme bloğu
:For / :In / :InEach / :EndForKoleksiyon üzerinde döngü
:While / :EndWhileÖn koşullu döngü
:Repeat / :UntilSon koşullu döngü
:Select / :Case / :CaseList / :EndSelectÇok yollu dallanma
:Trap / :Case / :EndTrapİstisna yönetimi (try/catch karşılığı)
:ReturnFonksiyondan erken dönüş
:LeaveDöngüden çıkış
:ContinueSonraki yinelemeye atla
:Class / :EndClassSınıf tanımı
:Interface / :EndInterfaceArabirim tanımı
:Namespace / :EndNamespaceİsim alanı tanımı
:Property / :EndPropertyÖzellik tanımı
:FieldAlan tanımı
:AccessÜye erişim düzeyi (Public, Private vb.)