4,509
edits
Miraheze>Marshall No edit summary |
No edit summary |
||
(32 intermediate revisions by 7 users not shown) | |||
Line 3: | Line 3: | ||
| index origin = 0 | | index origin = 0 | ||
| function styles = [[dfn]], [[tacit]] | | function styles = [[dfn]], [[tacit]] | ||
| numeric types = floats, extended precision floats, date, time, datetime | | numeric types = ints, floats, extended precision floats, date, time, datetime | ||
| unicode support = varies among implementations | | unicode support = varies among implementations | ||
| released = 1994 | | released = 1994 | ||
| file ext = .k | | file ext = .k | ||
| developer = [[Arthur Whitney]] | | developer = [[Arthur Whitney]] | ||
| latest release version = | | latest release version = K9 "Shakti" / 2020 | ||
| implementation | | implementation languages = [[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] | ||
| documentation = [http://kparc.com/k.txt K4] [https://kparc.github.io/ref/ | | documentation = [http://kparc.com/k.txt K4], [https://kparc.github.io/ref/ K9], [https://k.miraheze.org/ Wiki] | ||
| download = [https://kx.com/connect-with-us/download/ K4], [https://shakti.com/download/ | | download = [https://kx.com/connect-with-us/download/ K4], [https://shakti.com/download/ K9] | ||
| influenced by = [[A+]], [[ | | influenced by = [[A+]], [[wikipedia:Scheme_(programming_language)|Scheme]] | ||
| influenced = [[Q]], [[RAD]] | | influenced = [[Q]], [[RAD]], [[Kona]], [[Klong]], [[kuc]], [[oK]], [[ngn/k]], [[xs]] | ||
| run online = [https://kparc.com/k/ K9] | |||
}} | }} | ||
'''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 | '''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 languagesfor [[Q]], the query language of kdb+, which is an in-memory, column-based database. K7 (the first "Shakti K") was the first K to have full Unicode support, and it also uses a limited set non-ASCII glyphs in the core language, for example <source lang=apl inline>Ø</source> and <source lang=apl inline>∞</source>, however non-ASCII glyphs were removed in the subsequent K9. | ||
{{APL | == Releases == | ||
See [https://web.archive.org/web/20191202012157/shakti.com/database-software-history/ The Evolution of Database Software]. | |||
{|class=wikitable | |||
! Year !! Version | |||
|- | |||
| 1992 || K0 | |||
|- | |||
| 1994 || K1 | |||
|- | |||
| 1996 || K2 | |||
|- | |||
| 2000 || K4 | |||
|- | |||
| unreleased || K5 | |||
|- | |||
| unreleased || K6 | |||
|- | |||
| 2018 || K7 (Shakti) | |||
|- | |||
| doesn't exist || K8 | |||
|- | |||
| 2020 || K9 (Shakti) | |||
|} | |||
== Primitives == | |||
=== K3 === | |||
From the [https://github.com/kevinlawler/kona/wiki#verbs Kona Wiki]. | |||
{|class=wikitable | |||
! Verb !! Monadic !! Dyadic !! Triadic !! Tetradic | |||
|- | |||
| <code>+</code> || flip ([[Transpose]]) || [[plus]] || || | |||
|- | |||
| <code>-</code> || [[negate]] || [[minus]] || || | |||
|- | |||
| <code>*</code> || [[first]] || [[times]] || || | |||
|- | |||
| <code>%</code> || [[reciprocal]] || [[divide]] || || | |||
|- | |||
| <code><nowiki>|</nowiki></code> || [[reverse]] || [[max]]|[[or]] || || | |||
|- | |||
| <code>&</code> || [[where]] || [[min]]|[[and]] || || | |||
|- | |||
| <code>^</code> || [[shape]] || [[power]] || || | |||
|- | |||
| <code>!</code> || enumerate (includes [[Iota]]) || [[rotate]]|[[mod]] || || | |||
|- | |||
| <code><</code> || [[grade up]] || [[less than]] || || | |||
|- | |||
| <code>></code> || [[grade down]] || [[greater than]] || || | |||
|- | |||
| <code>=</code> || [[group]] || [[equals]] || || | |||
|- | |||
| <code>~</code> || [[not]], attribute || [[match]] || || | |||
|- | |||
| <code>@</code> || [[atom]] || [[Index function|at index]] || [[amend]]/trap || [[amend]] | |||
|- | |||
| <code>?</code> || range ([[Unique]]) || function inverse/find/draw/deal/sample || invert-guess || | |||
|- | |||
| <code>_</code> || [[floor]] || [[drop]]|[[Cut (K)|cut]] || || | |||
|- | |||
| <code>,</code> || enlist (like [[Enclose]]) || [[Catenate|join]] || || | |||
|- | |||
| <code>#</code> || [[count]] || [[take]]|[[reshape]] || || | |||
|- | |||
| <code>$</code> || [[format]] || dollar (conversions) || || | |||
|- | |||
| <code>.</code> || make/unmake dictionary || dot index || [[amend]]/trap || [[amend]] | |||
|- | |||
| <code>:</code> || colon || [[assignment]] || || | |||
|} | |||
{|class=wikitable | |||
! Adverb !! Definition | |||
|- | |||
| <code>/</code> || over (includes [[Reduce]] and [[Power operator|Power]]) | |||
|- | |||
| <code>\</code> || [[scan]] | |||
|- | |||
| <code>'</code> || [[each]] | |||
|- | |||
| <code>/:</code> || each right | |||
|- | |||
| <code>\:</code> || each left | |||
|- | |||
| <code>':</code> || eachpair (like [[Windowed Reduce]]) | |||
|} | |||
==External links== | |||
* [https://ngn.bitbucket.io/k.html Overview of K implementations] including links to documentation | |||
{{APL dialects}}[[Category:K dialects]] |