K7 Tutorial
shakti.com
shakti.com
> Arthur Whitney's k and its derivatives have served a small number of highly skilled programmers
Doesn't exactly start off with an inclusive tone.
Looks like I don't want to spend the effort learning it.
Array languages I would consider for actual work are mostly:
Dyalog APL, J, and K if I could afford kdb+.
If I wanted to play with implementations I agree that Ok and Klong are pretty cool.
x: 3 4 5 6 7 8 9 10
y: 100 200 300 400
?[x;3;y] / replace what's in position 3 by y
3 4 5 100 200 300 400 6 7 8 9 10 3 4 5 100 200 300 400 7 8 9 10
Otherwise that is not replacing, that is inserting.Weird, I tried it on http://johnearnest.github.io/ok/index.html and that agrees with the doc.. kinda confusing. Seems like it should be
?[x;3;y] / insert y at position 3
?[x;3 4;y] / replace what's in position 3 by yThat's... Interesting. I couldn't find any further mentions of "blockchain operations" in the reference. What do they mean, exactly? Since k is traditionally concerned with financial markets, I might guess that they're offering deeply-integrated ways to parse transactions, check the number of confirmations, query the current exchange rate, etc.?
The article says you can do the same with cpp and some extra libraries, but I wouldn't immediately think cpp or java was easily beatable -- manjana wonders --
As other's have said, K (the language and the interpreter) is highly optimized for processing tabular data. I've heard of it outperforming C in processing billions of rows of financial data. (Which, by my understanding, is K's primary market.)
Lastly, K (like APL, J, A+, Klong, Kona, etc.) is very terse. A phrase I've seen online is "one line of K is roughly equivalent to 100 lines of C". K programs, like APL & co., very often fit entirely into a screenful of text, but require close and complete reading to understand. There are lots of videos on youtube of people writing literate sudoku solvers or conway's game of life in a dozen lines or so, and terse solutions in a dozen or so characters.
People who like these programming languages tend to like their terseness -- they can view the entire program all at once (no scrolling or searching), and refactor or rewrite the program in a few seconds of minutes of typing.
I also have a practical question. Does `brandelf -t Linux bin/k` violate the License agreement?
As for you second question, how would brandelf change the binary (disclaimer: not a BSD user)?
I would use Dyalog APL or J over K in many cases. K is also really expensive (kdb+)...I'm not sure about Shakti (the K inventor formed a new company and left the first one).
J uses ASCII symbols and has a small community of very intelligent users that are stats smart, software smart, math smart...etc. It has great bindings to Lapack, built in graphs (well Dyalog does too) and tutorials called labs. The community is much smaller though and it doesn't have any parallel primitives. J is free to use, but the Jd columnar database is commercial, but very reasonably priced.
Honestly, both are awesome, fun, powerful, and plain cool.
Dyalog also sells a standard keyboard with the APL symbols printed on the keys. You might find that interesting.
There is also GNU APL which I have been playing with and has some good ideas also, including the ability to create scripts.