K: Difference between revisions

Jump to navigation Jump to search
3,675 bytes added ,  11:23, 5 February 2020
no edit summary
No edit summary
No edit summary
(8 intermediate revisions by 2 users not shown)
Line 10: Line 10:
| latest release version  = K7 "Shakti" / 2019
| latest release version  = K7 "Shakti" / 2019
| implementation language  = [[wikipedia:C_(programming_language)|C]], [http://kparc.com/b/ B]
| implementation language  = [[wikipedia:C_(programming_language)|C]], [http://kparc.com/b/ B]
| platforms                = macOS, Linux, Windows, kOS
| platforms                = macOS, Linux, Windows, [[kOS]]
| license                  = Free for personal use / Proprietary commercial software (free open source implementations exist)
| license                  = Free for personal use / Proprietary commercial software (free open source implementations exist)
| website                  = [https://kx.com/ Kx Systems], [https://shakti.com/ Shakti]
| website                  = [https://kx.com/ Kx Systems], [https://shakti.com/ Shakti]
Line 16: Line 16:
| download                = [https://kx.com/connect-with-us/download/ K4], [https://shakti.com/download/ K7]
| download                = [https://kx.com/connect-with-us/download/ K4], [https://shakti.com/download/ K7]
| influenced by            = [[A+]], [[J]], [[wikipedia:Scheme_(programming_language)|Scheme]]
| influenced by            = [[A+]], [[J]], [[wikipedia:Scheme_(programming_language)|Scheme]]
| influenced              = [[Q]], [[RAD]]
| influenced              = [[Q]], [[RAD]], [[Kona]], [[Klong]], [[oK]], [[ngn/k]]
| run online              = [https://kparc.io/kc K7]
| run online              = [https://kparc.io/kc K7]
}}
}}
'''K''' denotes a family of programming languages designed by [[Arthur Whitney]] and commercialized by Morgan Stanley, Kx Systems, and Shakti. In 1985, while at Morgan Stanly, Whitney created the statically typed A dialect of APL. His colleagues extended A into [[A+]] in 1988. Finally, Whitney presented the first K implementation in 1992, a "reduced instruction set" dialect which only used ASCII [[glyph|glyphs]] and limited arrays to [[list model|(nested) vectors]]. For a long time, K's main role was as implementation language for [[Q]], the query language of kdb+, which is an in-memory, column-based database. K7 ("Shakti K") is the first K to have full Unicode support, and it also uses a limited set non-ASCII symbols in the core language, for example <source lang=apl inline>Ø</source> and <source lang=apl inline>∞</source>.
'''K''' denotes a family of programming languages designed by [[Arthur Whitney]] and commercialized by Morgan Stanley, Kx Systems, and Shakti. In 1985, while at Morgan Stanley, Whitney created the statically typed A dialect of APL. His colleagues extended A into [[A+]] in 1988. Finally, Whitney presented the first K implementation in 1992, a "reduced instruction set" dialect which only used ASCII [[glyph|glyphs]] and limited arrays to [[list model|(nested) vectors]]. For a long time, K's main role was as implementation language for [[Q]], the query language of kdb+, which is an in-memory, column-based database. K7 ("Shakti K") is the first K to have full Unicode support, and it also uses a limited set non-ASCII symbols in the core language, for example <source lang=apl inline>Ø</source> and <source lang=apl inline>∞</source>.


== Releases ==
== Releases ==
Line 43: Line 43:
|}
|}


== Primitives ==
=== K3 ===
From the [https://github.com/kevinlawler/kona/wiki#verbs Kona Wiki].
{|class=wikitable
! Verb                            !! Monadic                          !! Dyadic                                !! Triadic          !! Tetradic
|-
| <source lang=k inline>+</source> || flip ([[Transpose]])            || [[plus]]                              ||                  ||
|-
| <source lang=k inline>-</source> || [[negate]]                      || [[minus]]                              ||                  ||
|-
| <source lang=k inline>*</source> || [[first]]                        || [[times]]                              ||                  ||
|-
| <source lang=k inline>%</source> || [[reciprocal]]                  || [[divide]]                            ||                  ||
|-
| <source lang=k inline>|</source> || [[reverse]]                      || [[max]]|[[or]]                        ||                  ||
|-
| <source lang=k inline>&</source> || [[where]]                        || [[min]]|[[and]]                        ||                  ||
|-
| <source lang=k inline>^</source> || [[shape]]                        || [[power]]                              ||                  ||
|-
| <source lang=k inline>!</source> || enumerate (includes [[Iota]])    || [[rotate]]|[[mod]]                    ||                  ||
|-
| <source lang=k inline><</source> || [[grade up]]                    || [[less than]]                          ||                  ||
|-
| <source lang=k inline>></source> || [[grade down]]                  || [[greater than]]                      ||                  ||
|-
| <source lang=k inline>=</source> || [[group]]                        || [[equals]]                            ||                  ||
|-
| <source lang=k inline>~</source> || [[not]], attribute              || [[match]]                              ||                  ||
|-
| <source lang=k inline>@</source> || [[atom]]                        || [[Index function|at index]]            ||  [[amend]]/trap  ||  [[amend]]
|-
| <source lang=k inline>?</source> || range ([[Unique]])              || function inverse/find/draw/deal/sample ||  invert-guess    ||
|-
| <source lang=k inline>_</source> || [[floor]]                        || [[drop]]|[[Cut (K)|cut]]              ||                  ||
|-
| <source lang=k inline>,</source> || enlist (like [[Enclose]])        || [[Catenate|join]]                      ||                  ||
|-
| <source lang=k inline>#</source> || [[count]]                        || [[take]]|[[reshape]]                  ||                  ||
|-
| <source lang=k inline>$</source> || [[format]]                      || dollar (conversions)                  ||                  ||
|-
| <source lang=k inline>.</source> || make/unmake dictionary          || dot index                              ||  [[amend]]/trap  ||  [[amend]]
|-
| <source lang=k inline>:</source> || colon                            || [[assignment]]                        ||                  ||
|}
{|class=wikitable
! Adverb                            !! Definition
|-
| <source lang=k inline>/</source>  || over (incudes [[Reduce]] and [[Power operator|Power]])
|-
| <source lang=k inline>\</source>  || [[scan]]
|-
| <source lang=k inline>'</source>  || [[each]]
|-
| <source lang=k inline>/:</source> || each right
|-
| <source lang=k inline>\:</source> || each left
|-
| <source lang=k inline>':</source> || eachpair (like [[Windowed Reduce]])
|}
==External links==
* [https://ngn.bitbucket.io/k.html Overview of K implementations]
{{APL dialects}}
{{APL dialects}}
45

edits

Navigation menu