Ngn/k: Difference between revisions

1,227 bytes added ,  5 months ago
end of support
No edit summary
(end of support)
 
(9 intermediate revisions by 2 users not shown)
Line 6:
| dev = [[ngn]]
| rel = 2017
| dialect = [[K6]]
| ttype = none
| table = yes (no prettyprinting)
Line 18:
| docs = [https://codeberg.org/ngn/k/src/branch/master/repl.k#L10 in repl]
| runurl = editor ([https://ngn.bitbucket.io/k/# Bitbucket], [https://ngn.codeberg.page/k/# Codeberg]), repl ([https://ngn.bitbucket.io/k/#r Bitbucket], [https://ngn.codeberg.page/k/#r Codeberg])
| infby = [[K7]], [[K9]]
}}
 
'''ngn/k''' is an implementation of [[K6]] created by [[ngn]]. It has been rewritten more than once, and has undergone many changes from its original iteration, borrowing ideas from many [[Arthur Whitney]] Ks, and occasionally deviating from their functionality.
 
ngn/k has undergone several rewrites, borrowing ideas from many [[Arthur Whitney]] Ks, and occasionally deviating from their functionality.
ngn/k is written in [[Arthur_Whitney#Programming_Style|Whitney-style C]], and is written to be performant, compact, and with minimal dependencies.
 
ngn/k is written in [[Arthur_Whitney#Programming_Style|Whitney-style C]], and is written to be performant, compact, and with minimal dependencies.
 
== History ==
Line 36 ⟶ 38:
 
The current version of ngn/k resides in Codeberg, and the move was officially announced on May 21, 2021<ref>https://chat.stackexchange.com/transcript/message/57843141#57843141</ref>. The codeberg repository has its initial commit at 2019, where it had support for x86_64 linux only.
 
ngn/k was indefinitely frozen<ref>https://codeberg.org/ngn/k/commit/7e7420217f9df95273a8605e05d6335d66dd8f8a</ref> on May 24, 2022.
 
In January 2024, ngn/k was announced to be no longer supported.
 
== Running ==
Line 43 ⟶ 49:
 
[[User:Traws|Traws]] has a fork of ngn/k on [https://github.com/traws0/ngnk-windows Github] which is made for compilation under cosmopolitan libc.
 
== Features ==
 
=== I/O Verbs ===
ngn/k's I/O verbs are defined as per the [[K6]] standard. They are made up of a single digit, followed by a <code>:</code> symbol: <code>loc u: data</code> for output and <code>u: loc</code> for input.
 
A symbol, string or number can be given as <Code>loc</code>. Any number given must be a valid tie number (see: [[Tie(ngn/k)]]).
 
Every input verb is classified by <code>data</code>:
* <code>0:</code> takes lists of strings. (concatenates them with newlines)
* <Code>1:</code> takes a single string.
 
=== Reserved Symbols ===
ngn/k has reserved symbols used for providing access to features that are not important enough to be added as primitives, but still warrant a name for quick use. These symbols can be used like any other nouns.
 
The ngn/k help topic for adverbs is available at <code>\`</code> in the ngn/k repl.
 
=== Defined Verbs ===
ngn/k allows creation of new verbs that can be used infix, as part of its syntax. These must be defined as follows (using <code>∇</code> as an example symbol):
 
<pre>(∇:): monad
(∇): dyad</pre>
== References ==
 
[[Category:Implementations]]