all repos — min @ 7d9bd073a1ce4aceabce8d321b9e210675d18b68

A small but practical concatenative programming language.

site/contents/_includes/_reference_.md

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
{@ _defs_.md || 0 @}

min includes a small but powerful standard library organized into the following _modules_:

{#link-module||lang#}
: Defines the basic language constructs, such as control flow, symbol definition and binding, exception handling, basic stack operators, etc.
{#link-module||stack#}
: Defines combinators and stack-shufflers like dip, dup, swap, cons, etc.
{#link-module||io#}
: Provides operators for reading and writing files as well as printing to STDOUT and reading from STDIN.
{#link-module||fs#}
: Provides operators for accessing file information and properties. 
{#link-module||logic#}
: Provides comparison operators for all min data types and other boolean logic operators.
{#link-module||str#}
: Provides operators to perform operations on strings, use regular expressions, and convert strings into other data types.
{#link-module||sys#}
: Provides operators to use as basic shell commands, access environment variables, and execute external commands.
{#link-module||num#}
: Provides operators to perform simple mathematical operations on integer and floating point numbers.
{#link-module||time#}
: Provides a few basic operators to manage dates, times, and timestamps.
{#link-module||crypto#}
: Provides operators to compute hashes (MD5, SHA1, SHA224, SHA256, SHA384, sha512), base64 encoding/decoding, and AES encryption/decryption.

## Notation

The following notation is used in the signature of all min operators:

{{any}}
: Any value.
[\*?](class:kwd)
: Zero or more values of any type.
B
: A boolean value.
{{q}}
: A quotation.
{{1e}}
: The first element on the stack.
{{2e}}
: The second element on the stack.
{{1}}
: The first quotation on the stack.
{{2}}
: The second quotation on the stack.
{{3}}
: The third quotation on the stack.
{{4}}
: The fourth quotation on the stack.
{{d}}
: A dictionary quotation.
{{e}}
: An error dictionary:
  <pre><code>(
    (error "MyError")
    (message "An error occurred")
    (symbol "symbol1")            ;Optional
    (filename "dir1/file1.min")   ;Optional
    (line 3)                      ;Optional
    (column 13)                   ;Optional
  )
  </code></pre>
{{i}}
: An integer value.
{{n}}
: A numeric value.
{{s}}
: A string value.
{{s1}}
: The first string on the stack.
{{s2}}
: The second string on the stack.
{{sp}}
: One or more string values.
{{sl}}
: String-like (a string or quoted sumbol).
{{f}}
: false (boolean type).
{{t}}
: true (boolean type).
{{null}}
: No value.