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
| Sembol | Ad | Monadik (tek arg.) | Dyadik (iki arg.) |
| + | Plus | Eşlenik (karmaşık sayı) | Toplama |
| - | Minus | Sayıyı tersine çevirir | Çıkarma |
| × | Times | İşaret (-1, 0, 1) | Çarpma |
| ÷ | Divide | Tersini alır (1÷x) | Bölme |
| * | Star | e üssü (e^x) | Üs alma (x^y) |
| ⍟ | Log | Doğal logaritma | y tabanında x logaritması |
| ○ | Circle | Pi ile çarpar (π×x) | Trigonometrik fonksiyonlar (sol arg. fonksiyon seçer) |
| ! | Factorial | Faktöriyel (n!) | Kombinasyon sayısı C(y,x) |
| | | Stile | Mutlak değer | Mod (kalan) |
| ? | Query | 0–x arası rastgele sayı | y'den x tane rastgele öğe seçer |
Karşılaştırma ve Mantıksal Fonksiyonlar 10
| Sembol | Ad | Monadik | Dyadik |
| = | 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 |
| ≡ | Match | Derinlik (iç içe seviye) | Tam eşleşme denetimi |
| ≢ | Not Match | Toplam 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 |
| ~ | Tilde | Mantıksal DEĞİL | Küme çıkarma (x'den y'yi çıkar) |
Dizi Oluşturma ve Şekillendirme 10
| Sembol | Ad | Monadik | Dyadik |
| ⍳ | Iota | 0'dan x-1'e dizin üretir | x'in y içindeki ilk konumunu bulur |
| ⍸ | Where | Doğru (1) öğelerin indekslerini verir | — |
| ⍴ | Rho | Dizinin boyutlarını (şeklini) verir | x boyutlarında y içerikli dizi oluşturur |
| , | Comma | Çok boyutlu diziyi düzleştirir | Dizileri yatay birleştirir |
| ⍪ | Comma Bar | Diziyi sütun vektörüne dönüştürür | Dizileri dikey birleştirir |
| ↑ | Take | Diziyi tek elemanlıdan büyüterek karıştırır | x eleman alır (baştan veya sondan) |
| ↓ | Drop | Diziyi iç içe katmandan çıkarır | x eleman bırakır (baştan veya sondan) |
| ⌽ | Circle Stile | Diziyi tersine çevirir | x kadar döndürür |
| ⊖ | Circle Bar | İlk eksen boyunca tersine çevirir | İlk eksen boyunca döndürür |
| ⍉ | Transpose | Diziyi transpoz eder | Eksenleri x sırasına göre yeniden düzenler |
Seçme, Arama ve Sıralama 9
| Sembol | Ad | Monadik | Dyadik |
| ⊂ | Enclose | Diziyi tek skaler öğeye sarar | Koşula göre bölme |
| ⊃ | Disclose | İlk öğeyi açar | Derin dizinde konuma göre seçer |
| ⊆ | Nest | Skaler değilse sarmalar, değilse bırakır | Koşullu bölme (ayrık) |
| ∊ | Epsilon | Diziyi tamamen düzleştirir | Üyelik denetimi |
| ⍷ | Find | — | x'in y içindeki başlangıç konumlarını bulur |
| ⍋ | Grade Up | Artan sıralamada indeksleri verir | x sıralamasında y'yi sıralar |
| ⍒ | Grade Down | Azalan sıralamada indeksleri verir | x sıralamasında y'yi ters sıralar |
| ⌊ | Floor | Aşağı yuvarlar | Minimum değer |
| ⌈ | Ceiling | Yukarı yuvarlar | Maksimum değer |
Kodlama ve Biçimleme 6
| Sembol | Ad | Monadik | Dyadik |
| ⊥ | Down Tack | — | x tabanında y'yi çözer (decode) |
| ⊤ | Up Tack | — | y'yi x tabanında kodlar (encode) |
| ⍕ | Format | Diziyi karaktere dönüştürür | Biçim belirterek dönüştürür |
| ⍎ | Execute | Dizeyi APL ifadesi olarak çalıştırır | — |
| ⌹ | Quad Divide | Matrisin tersini alır | Matris bölmesi (x\y) |
| ⍬ | Zilde | Boş sayısal vektör sabiti |
Kimlik ve Bağlam Sembolleri 6
| Sembol | Ad | Açıklama |
| ⊢ | Right Tack | Sağ argümanı döndürür (kimlik); fonksiyon uygulama |
| ⊣ | Left Tack | Sol argümanı döndürür |
| ⍺ | Alpha | Dfn (tanımlı fonksiyon) içinde sol argümanı temsil eder |
| ⍵ | Omega | Dfn içinde sağ argümanı temsil eder |
| ∇ | Del | Geleneksel fonksiyon tanımı başlatır/bitirir |
| ⎕ | Quad | Sistem fonksiyonu öneki; değerlendirilmiş giriş/çıkış |
| ⍞ | Quote-Quad | Karakter (değerlendirilmemiş) giriş/çıkış |
Operatörler (Üst Düzey Fonksiyonlar) 16
APL operatörleri fonksiyon alıp yeni fonksiyon üretir (higher-order functions).
| Sembol | Ad | Açıklama |
| / | Reduce | f/ : fonksiyonu vektör üzerinde katlar (örn. +/ toplar) |
| ⌿ | Reduce First | İlk eksen boyunca katlar |
| \ | Scan | Kümülatif katlar (prefix sum için +\) |
| ⍀ | Scan First | İlk eksen boyunca kümülatif katlar |
| ¨ | Each | Fonksiyonu iç içe dizinin her öğesine uygular |
| ⍨ | Commute | Argümanları yer değiştirir; monadik: kendisiyle dyadik uygular |
| ⍣ | Power | Fonksiyonu n kez uygular; ⍣≡ sabit noktaya ulaşana dek |
| ∘. | Outer Product | Dış çarpım; iki dizinin tüm çiftlerine fonksiyon uygular |
| ∘ | Compose | İki fonksiyonu birleştirir (f∘g = f(g(x))) |
| ⍤ | Rank / Atop | Fonksiyonu belirli boyut derecesine uygular |
| ⍥ | Over | Önce g uygular, sonra f(g(x), g(y)) |
| @ | At | Seçilen konumlara fonksiyon uygular |
| ⌸ | Key | Anahtara göre gruplama; SQL GROUP BY karşılığı |
| ⌺ | Stencil | Kayan pencere (sliding window) uygulama |
| ⍠ | Variant | Fonksiyon seçeneği ayarlar |
| & | Spawn | Eş zamanlı iş parçacığı başlatır |
Denetim Yapıları (Dyalog APL) ~24
| Sözcük | Açıklama |
| :If / :ElseIf / :Else / :EndIf | Koşullu yürütme bloğu |
| :For / :In / :InEach / :EndFor | Koleksiyon üzerinde döngü |
| :While / :EndWhile | Ön koşullu döngü |
| :Repeat / :Until | Son koşullu döngü |
| :Select / :Case / :CaseList / :EndSelect | Çok yollu dallanma |
| :Trap / :Case / :EndTrap | İstisna yönetimi (try/catch karşılığı) |
| :Return | Fonksiyondan erken dönüş |
| :Leave | Döngüden çıkış |
| :Continue | Sonraki yinelemeye atla |
| :Class / :EndClass | Sınıf tanımı |
| :Interface / :EndInterface | Arabirim tanımı |
| :Namespace / :EndNamespace | İsim alanı tanımı |
| :Property / :EndProperty | Özellik tanımı |
| :Field | Alan tanımı |
| :Access | Üye erişim düzeyi (Public, Private vb.) |