In accordance with our meta agreement, since one candidate received more votes than the others, we have a new featured language! Throughout August 2021, our Language of the Month will be:
K
What's a Language of the Month?
See the meta post for nominations. In short, during August, those who wish to participate should learn (at least the basics of) K, and use it to solve challenges. Participation is completely optional, but is anticipated to be fun!
Information about K
K is a member of APL-family languages, originally created by Arthur Whitney. Arthur's K has many versions; the latest version as of June 2021 is Shakti (also commonly called K9), which is still under development.
While official K versions were made for commercial purposes, multiple open-source implementations are also available. Two actively maintained ones are oK by John Earnest (JohnE), and ngn/k. The oK manual is a particularly good resource to get started in K, and then you can choose to move to ngn/k without too much problem (the two are 99% compatible with each other). You can also ask any questions about programming in K in the k tree, where multiple open-source K implementors (including JohnE and ngn) and other K users are regularly active.
- It is the K language actually used in investment banks and hedge funds.
- It is a great example of iterations of language design, aimed at general purpose programming with a small set of built-in functions and easy-to-parse syntax. I'd especially recommend K to the CGCCers interested in making their own languages.
- The oK manual is an excellent resource for starters.
- Despite being relatively minimalistic in the list of built-ins (and being ASCII-only), K is often pretty competitive in code golf.
- K is also often pretty fast for an interpreted language.
Bounty
I (Bubbler) will award a +100 bounty for any user's first K answer posted during this month. A user doesn't qualify if they have posted a K answer before.
Resources
- APL Wiki article on K, K wiki
- Shakti: Official homepage, unofficial K9 tutorial, browser REPL
- oK: GitHub repo, manual, browser REPL, TIO (outdated)
- ngn/k: Codeberg repo, browser REPL, browser interpreter (supports CGCC post format), TIO (outdated)
- k crash course, an alternative learning material
- the k tree, the SE chatroom dedicated to K