Kap: Difference between revisions

Jump to navigation Jump to search
8,438 bytes added ,  11 March
m
→‎Operators: Formatting
m (Text replacement - "KAP" to "Kap")
m (→‎Operators: Formatting)
 
(7 intermediate revisions by 3 users not shown)
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 ([[Signum]])        || [[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> || [[Shape]]                  || [[Reshape]]
|-
| <syntaxhighlight lang=apl inline>⍳</syntaxhighlight> || [[Index generator]]        || [[Index of]]
|-
| <syntaxhighlight lang=apl inline>⊢</syntaxhighlight> || [[Identity]]              || [[Right]]
|-
| <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> || [[Hide]]                  || [[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><br/><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| [[Withe|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.
== External links ==
* [[Array Cast]] episode 72, [https://www.arraycast.com/episodes/episode72-kap Elias Mårtenson and the Kap array programming language]
== 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]]

Navigation menu