ngn-k-tutorial
Kbd
Our great sponsors
ngn-k-tutorial | Kbd | |
---|---|---|
11 | 8 | |
192 | 27 | |
- | - | |
8.4 | 1.8 | |
28 days ago | about 2 years ago | |
C | APL | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ngn-k-tutorial
-
Thinking in an Array Language
Complain about the language or documentation, but array language communities are absolutely friendly to outsiders! This tutorial lists some active forums, give them a try:
https://github.com/razetime/ngn-k-tutorial/tree/main?tab=rea...
Also, have to shout out the APL Orchard, where Adám will give any visitor a personal tutorial: https://chat.stackexchange.com/rooms/52405/the-apl-orchard
-
APL: An Array Oriented Programming Language (2018)
To add to the list, this one is pretty good;
https://github.com/razetime/ngn-k-tutorial
-
rando Q vs J thoughts | Locklin on science
If you like APL, then you probably want to try K, which is an ASCII-only array language with a focus on guided minimalism. For an open source K you can try ngn/k, which has a tutorial.
- Thinking in an array language
-
Ngn/k (free K implementation)
Razetime's matmul refactoring is brilliant: https://github.com/razetime/ngn-k-tutorial/blob/main/c-think...
Finally, some nice examples of k's concision:
qs:{$[2>#?x;x;,/qs'x@&'~\:x<*1?x]} / Quicksort
- An ngn/k Tutorial
Kbd
-
Dyalog APL Keyboard Layouts
Should you wish to type them on a normal keyboard:
https://abrudz.github.io/lb/apl has a browser bookmarklet which adds an APL language bar to the top of any web page so you can type in any input box with backtick prefixes.
https://github.com/abrudz/Kbd has a Windows Input Method Editor (IME) that adds system-wide RightAlt+letter combos.
-
Ask HN: Do I need a special keyboard layout to learn array programming?
:d) https://github.com/abrudz/Kbd
-
APL has the highest percentage of trans programmers for the 2nd year in a row, according to Stack Overflow survey
I use setxkbmap -layout us,apl -variant ,dyalog -option grp:switch on Linux and https://github.com/abrudz/Kbd on Windows.
-
Ngn/k (free K implementation)
This might have been true a couple of years ago but it is totally untrue now.
I'm not sure why you couldn't use the student version of Dyalog? Sounds like it would have been fine. There are also many more FOSS implementations of array languages now, such as ngn/k and April. https://github.com/phantomics/april
'only available for Linux' - not true https://github.com/abrudz/Kbd/ and others (also different input modes like `w for ⍵)
'no community support' - on the contrary there is a big and helpful APL community https://aplwiki.com/wiki/Chat_rooms_and_forums that is (imo) more useful than stackoverflow
'Dynamic scoping...' - Dyalog's (and other APL's) dfns have lexical scope.
'The language is extremely terse' - is this meant to be a bad thing?
'The code tends to be very hacky' - maybe if you write bad code or try and write C in APL (it won't work)
- Use TAB entry style in Dyalog for Mac?
-
Learning APL
In general programming I like to use a keyboard layout which allows typing APL glyphs with Right Alt: https://github.com/abrudz/Kbd
What are some alternatives?
b-decoded - arthur whitney's b interpreter translated into a more traditional flavor of C
BQN - An APL-like programming language. Self-hosted!
kona - Open-source implementation of the K programming language
kalamine - Keyboard Layout Maker
april - The APL programming language (a subset thereof) compiling to Common Lisp.
pdp11.jl - PDP-11 Simulator written in Julia
kdb - kdb+ Working Group from FINOS Data Technologies program
dyalog-apl-extended - Dyalog APL Extended
rsbqn - An embeddable BQN virtual machine in rust. Stay tuned!
aoc2017 - ngn/k
ok - An open-source interpreter for the K5 programming language.
PDP_11_Simulator - PDP11 Simulator written in APL