2,962
edits
m (Text replacement - "KAP" to "Kap") |
(Primitive tables) |
||
Line 36: | Line 36: | ||
* Native hash table support | * Native hash table support | ||
* Parallel evaluation (to take advantage of multi-core CPU's) | * Parallel evaluation (to take advantage of multi-core CPU's) | ||
== Primitives == | |||
=== Functions === | |||
{|class=wikitable | |||
! Glyph !! Monadic !! Dyadic | |||
|- | |||
| <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Conjugate]] || [[Add]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Negate]] || [[Subtract]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Angle]] || [[Multiply]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]] || [[Divide]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Magnitude]] || [[Mod]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⋆</syntaxhighlight> ||colspan=2| [[Power]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> ||colspan=2| [[Log]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> || || [[Equals]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || || [[Not equals]] | |||
|- | |||
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || [[Increase rank]] || [[Less than]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || [[Decrease rank]] || [[Greater than]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>≤</syntaxhighlight> || || [[Less than or equal]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>≥</syntaxhighlight> || || [[Greater than or equal]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>∧</syntaxhighlight> || [[Sort up]] || [[Logical and]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>∨</syntaxhighlight> || [[Sort down]] || [[Logical or]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍲</syntaxhighlight> || || [[Logical nand]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍱</syntaxhighlight> || || [[Logical nor]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>∼</syntaxhighlight> || [[Logical not]] || [[Without]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>√</syntaxhighlight> || [[Square root]] || [[Root]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Floor]] || [[Min]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]] || [[Max]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial|Gamma]] || [[Binomial]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊢</syntaxhighlight> || [[Identity]] || [[Right]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> || [[Identity]] || [[Left]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⌷</syntaxhighlight> || || [[Index (function)|Index lookup]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊂</syntaxhighlight> || [[Enclose]] || [[Partitioned enclose]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || [[Disclose]] || [[Pick]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>,</syntaxhighlight> || [[Ravel]] || [[Concatenate]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍪</syntaxhighlight> || [[Table]] || [[Concatenate first axis]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>↑</syntaxhighlight> || [[Take first]] || [[Take]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>↓</syntaxhighlight> || [[Drop first]] || [[Drop]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]] || [[Deal]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> || [[Reverse horizontally]] || [[Rotate horizontally]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊖</syntaxhighlight> || [[Reverse vertically]] || [[Rotate vertically]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> || [[Transpose]] || [[Transpose by axis]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>∊</syntaxhighlight> || || [[Member]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍷</syntaxhighlight> || || [[Find]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍋</syntaxhighlight> || [[Grade up]] || | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍒</syntaxhighlight> || [[Grade down]] || | |||
|- | |||
| <syntaxhighlight lang=apl inline>⫽</syntaxhighlight> || || [[Replicate]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍕</syntaxhighlight> || [[Format]] || | |||
|- | |||
| <syntaxhighlight lang=apl inline>⍎</syntaxhighlight> || Parse number || | |||
|- | |||
| <syntaxhighlight lang=apl inline>%</syntaxhighlight> || || [[Case]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊆</syntaxhighlight> || [[Nest]] || [[Partitioned enclose]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊇</syntaxhighlight> || || [[Select]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>∩</syntaxhighlight> || || [[Intersection]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⌸</syntaxhighlight> || || [[Key]] (<syntaxhighlight lang=apl inline>{⍺⍵}⌸</syntaxhighlight> in Dyalog) | |||
|- | |||
| <syntaxhighlight lang=apl inline>∪</syntaxhighlight> || || [[Union]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊤</syntaxhighlight> || || [[Decode]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> || || [[Encode]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> || [[Matrix inverse]] || [[Matrix division]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>≡</syntaxhighlight> || [[Depth]] || [[Compare equal]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>≢</syntaxhighlight> || [[Tally|Size of major axis]] || [[Compare not equals]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>→</syntaxhighlight> || Return from a function || | |||
|} | |||
=== Operators === | |||
{|class=wikitable | |||
! Syntax !! Monadic !! Dyadic | |||
|- | |||
| <syntaxhighlight lang=apl inline>F¨</syntaxhighlight> ||colspan=2| [[For each]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F/</syntaxhighlight> || [[Reduce]] || [[Windowed reduce]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⌿</syntaxhighlight> || [[Reduce leading axis]] || [[Windowed reduce leading axis]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⌻</syntaxhighlight> || || [[Outer product]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F.G</syntaxhighlight> || || [[Inner product]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⍨</syntaxhighlight> || [[Self|Duplicate]] || [[Commute]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⍣k</syntaxhighlight> ||colspan=2| [[Power operator]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F\</syntaxhighlight> || [[Scan]] || | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⍀</syntaxhighlight> || [[Scan first axis]] || | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⍤k</syntaxhighlight> ||colspan=2| [[Rank operator]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F∵</syntaxhighlight> ||colspan=2| Derive bitwise | |||
|- | |||
| <syntaxhighlight lang=apl inline>F∥</syntaxhighlight> ||colspan=2| [[Parallel]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F˝</syntaxhighlight> ||colspan=2| [[Inverse]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F∘G</syntaxhighlight> ||colspan=2| [[Compose]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⍛G</syntaxhighlight> ||colspan=2| [[Inverse compose]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⍥G</syntaxhighlight> ||colspan=2| [[Over]] | |||
|- | |||
| <syntaxhighlight lang=apl inline>F⍢G</syntaxhighlight> ||colspan=2| [[Structural under]] | |||
|} | |||
In addition to these, Kap uses the glyphs <syntaxhighlight lang=apl inline>«</syntaxhighlight> and <syntaxhighlight lang=apl inline>»</syntaxhighlight> to form [[Fork]]s. These are not operators, although they resemble them syntactically. | |||
== References == | == References == | ||
<references/> | <references/> | ||
{{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Languages with first-class functions]][[Category:Leading axis languages]] | {{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Languages with first-class functions]][[Category:Leading axis languages]] |