packages feed

koneko-0.0.2: doc/10-standard-library.md

<!-- {{{1 -->

    File        : doc/10-standard-library.md
    Maintainer  : Felix C. Stegerman <flx@obfusk.net>
    Date        : 2020-11-12

    Copyright   : Copyright (C) 2020  Felix C. Stegerman
    Version     : v0.0.1
    License     : GPLv3+

<!-- }}}1 -->

→ [README](../README.md),
→ prev: [Primitives, Builtins & Prelude](09-primitives-builtins-and-prelude.md),
→ next: [Possible Future Extensions](11-future.md)

## Standard Library

→ [IO](#io), → [JSON](#json), → [Math](#math), → [Str](#str), ...

### IO

**NB: work in progress.**

NB: the `io` module is built-in (and does not need to be `require`d or
`use`d; it can of course still be `import`ed).

```koneko
>>> "lib/_test.knk" io.contents! 24 [-j)    ; file contents
"\"loading module _test..."
>>> , "lib/_test.knk" io.lines!             ; file lines
>>> , "loading" grep 'say! each
"loading module _test..." say!
```

### JSON

NB: the `json` module is built-in (and does not need to be `require`d
or `use`d; it can of course still be `import`ed).

```koneko
>>> { x: 42, y: ( 1 2 3 ) } dup json.<-     ; json str <- value
"{\"x\":42,\"y\":[1,2,3]}"
>>> json.->                                 ; json str -> value
{ :x 42 =>, :y ( 1 2 3 ) => }
>>> =
#t

>>> :foo json.<- json.->                    ; kwds become strs
"foo"
>>> x: 42 json.<- json.->                   ; pairs become lists
( "x" 42 )

>>> , :Foo ( :x :y ) defrecord              ; records become dicts
>>> Foo( 1 2 ) json.<- json.->
{ :__koneko_type__ "Foo" =>, :x 1 =>, :y 2 => }
```

### Math

NB: the `math` module is built-in (and does not need to be `require`d
or `use`d; it can of course still be `import`ed).

```koneko
>>> ( :^ :** :sqrt ) :math use-from

>>> math.pi
3.141592653589793
>>> 1.0 math.exp
2.718281828459045
>>> 10.0 math.log ** round
10

>>> 2 10 ^
1024
>>> 2.0 10.0 **
1024.0
>>> 2.0 0.5 **
1.4142135623730951
>>> 2.0 sqrt
1.4142135623730951

>>> -0.0 math.sign
-0.0
>>> 1.0 0.0 / neg math.sign
-1.0

>>> math.pi 0.5 * math.sin
1.0

>>> :math __module-defs__
( :** :^ :acos :acosh :asin :asinh :atan :atan2 :atanh :cos :cosh :exp :log :pi :sign :sin :sinh :sqrt :tan :tanh )
```

### Str

→ [Syntax Highlighted Source](https://koneko.dev/lib-doc/str.knk.html),
→ [Function Index](https://koneko.dev/lib-doc/str.knk.index.html)

... TODO ...

<!-- vim: set tw=70 sw=2 sts=2 et fdm=marker : -->