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
=Equal—Eşitlik (0 veya 1)
≠Not Equal—Eşit değil
<Less—Küçüktür
≤Less Equal—Küçük veya eşit
>Greater—Büyüktür
≥Greater Equal—Büyük veya eşit
≡MatchDerinlik (iç içe seviye)Tam eşleşme denetimi
≢Not MatchToplam eleman sayısıEşleşmeme denetimi
∧And—Mantıksal VE; OKEK (tam sayı)
∨Or—Mantıksal VEYA; OBEB (tam sayı)
⍲Nand—Mantıksal NAND
⍱Nor—Mantı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
⍷Find—x'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 Tack—x tabanında y'yi çözer (decode)
⊤Up Tack—y'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.)