forked from sejo/compudanzas
94 lines
1.1 KiB
Plaintext
94 lines
1.1 KiB
Plaintext
# k programming language
|
|
|
|
a flavor of {apl}, i understand?
|
|
|
|
# resources
|
|
|
|
=> https://codeberg.org/ngn/k ngn/k
|
|
=> https://ngn.codeberg.page/k/# ngn/k online
|
|
|
|
# notes from eris' k class
|
|
|
|
operator precedence: always from right to left.
|
|
|
|
types:
|
|
|
|
* integer (list of)
|
|
* float (list of)
|
|
* character (list of/string)
|
|
* dictionary (list of/table)
|
|
* symbol (list of)
|
|
|
|
lists are enclosed between parenthesis, and items separated with semicolons
|
|
|
|
```
|
|
(1;2;3)
|
|
("a";"b";"c")
|
|
```
|
|
|
|
equivalent to:
|
|
|
|
```
|
|
1 2 3
|
|
"abc"
|
|
```
|
|
|
|
|
|
assignment is done with :
|
|
|
|
```
|
|
a: 1
|
|
b: 1 2 3
|
|
```
|
|
|
|
## verbs
|
|
|
|
minus sign (-), unary is negate, binary is subtraction:
|
|
|
|
```
|
|
- 1 2 3
|
|
result -1 -2 -3
|
|
|
|
2 - 1
|
|
result 1
|
|
```
|
|
|
|
plus sign (+), binary is addition:
|
|
|
|
```
|
|
1 + 2
|
|
result 3
|
|
```
|
|
|
|
asterisk (*), unary is "first", binary is multiplication
|
|
|
|
```
|
|
2 * 3
|
|
result 6
|
|
|
|
* 3 2 1
|
|
result 3
|
|
```
|
|
|
|
vertical bar (|), unary is reverse, binary is mod?
|
|
|
|
```
|
|
|1 2 3
|
|
result 3 2 1
|
|
```
|
|
|
|
with colon (:) one can force the use of the unary mode, e.g.
|
|
|
|
```
|
|
*: 3 2 1
|
|
```
|
|
|
|
exclamation mark (!) applied to an integer produces the natural numbers from 0 to that integer minus one:
|
|
|
|
```
|
|
!5
|
|
result 0 1 2 3 4
|
|
```
|
|
|
|
percent sign (%) is division
|