doc updates
This commit is contained in:
parent
48842457c1
commit
07c46a5284
277
doc/Doc.md
277
doc/Doc.md
|
|
@ -21,146 +21,145 @@
|
||||||
|
|
||||||
|
|
||||||
## Syntax and Special Forms
|
## Syntax and Special Forms
|
||||||
|Special Form|Argument Evaluations|Purpose|
|
|Special Form|Argument Evaluations|Purpose|Section|
|
||||||
|:-|-|-|
|
|:-|-|-|-|
|
||||||
|`(if cond a b)`|`if` only evaluates its `cond` argument. If `cond` is truthy (non-zero), then `a` is evaluated. Otherwise, `b` is evaluated.|This special form is the main method of control flow.|
|
|`(if cond a b)`|`if` only evaluates its `cond` argument. If `cond` is truthy (non-zero), then `a` is evaluated. Otherwise, `b` is evaluated.|This special form is the main method of control flow.|Language|
|
||||||
|`(cond (test1 action1) (test2 action2) ... (testn actionn))`|The first clause whose test evaluates to non-nil is selected; all other clauses are ignored, and the consequents of the selected clause are evaluated in order. If none of the test conditions are evaluated to be true, then the cond statement returns nil.|This special form is method of control flow.|
|
|`(cond (test1 action1) (test2 action2) ... (testn actionn))`|The first clause whose test evaluates to non-nil is selected; all other clauses are ignored, and the consequents of the selected clause are evaluated in order. If none of the test conditions are evaluated to be true, then the cond statement returns nil.|This special form is method of control flow.|Language|
|
||||||
|`(do a b c ...)`|`do` takes a list of s-expressions and evaluates them in the order they were given (in the current scope), and then returns the result of the last s-expression.|This special form allows lambda functions to have multi-step bodies.|
|
|`(do a b c ...)`|`do` takes a list of s-expressions and evaluates them in the order they were given (in the current scope), and then returns the result of the last s-expression.|This special form allows lambda functions to have multi-step bodies.|Language|
|
||||||
|`(scope a b c ...)`|`scope` takes a list of s-expressions and evaluates them in the order they were given _in a new scope_, and then returns the result of the last s-expression.|This special form allows the user to evaluate blocks of code in new scopes.|
|
|`(scope a b c ...)`|`scope` takes a list of s-expressions and evaluates them in the order they were given _in a new scope_, and then returns the result of the last s-expression.|This special form allows the user to evaluate blocks of code in new scopes.|Language|
|
||||||
|`(defun name params body)`|`defun` evaluates none of its arguments.|This special form allows the user to conveniently define functions.|
|
|`(defun name params body)`|`defun` evaluates none of its arguments.|This special form allows the user to conveniently define functions.|Language|
|
||||||
|`(define name value)`|`define` evaluates the `value` argument, which is then assigned to `name` in the current scope.|This special form allows the user to bind atoms to values in a scope.|
|
|`(define name value)`|`define` evaluates the `value` argument, which is then assigned to `name` in the current scope.|This special form allows the user to bind atoms to values in a scope.|Language|
|
||||||
|`(lambda params body)`|`lambda` evaluates none of its arguments.|This special form allows the user to define anonymous functions.|
|
|`(lambda params body)`|`lambda` evaluates none of its arguments.|This special form allows the user to define anonymous functions.|Language|
|
||||||
|`(quote x)`|`quote` evaluates none of its arguments.|This is equivalent to the `'expr` syntactic sugar.|
|
|`(quote x)`|`quote` evaluates none of its arguments.|This is equivalent to the `'expr` syntactic sugar.|Language|
|
||||||
|`(for x list ...)`|`for` evaluates only its list argument.|`for` iterates through the list storing each element in `x`, and then evaluating all of the rest of the values in the `for` body. It then returns the last value evaluated.|
|
|`(for x list ...)`|`for` evaluates only its list argument.|`for` iterates through the list storing each element in `x`, and then evaluating all of the rest of the values in the `for` body. It then returns the last value evaluated.|Language|
|
||||||
|`(while cond ...)`|`while` evaluates only its cond argument.|`while` evaluates its condition expression every iteration before running. If it is true, it continues to evaluate every expression in the `while` body. It then returns the last value evaluated.|
|
|`(while cond ...)`|`while` evaluates only its cond argument.|`while` evaluates its condition expression every iteration before running. If it is true, it continues to evaluate every expression in the `while` body. It then returns the last value evaluated.|Language|
|
||||||
|`(and ...)`|`and` evaluates logical and on its list argument.|`and` evaluates only until its true, it stops when becomes false.
|
|`(and ...)`|`and` evaluates logical and on its list argument.|`and` evaluates only until its true, it stops when becomes false.|Language|
|
||||||
|`(or ...)`|`or` evaluates logical or on its list argument.|`or` evaluates while its false, it stops when becomes true.|
|
|`(or ...)`|`or` evaluates logical or on its list argument.|`or` evaluates while its false, it stops when becomes true.|Language|
|
||||||
|`(benchmark msg_string ...)`|`benchmark` takes a list of s-expressions and evaluates them in the order they were given (in the current scope), and then returns the result of the last s-expression and prints msg_string and timing info.||
|
|`(benchmark msg_string ...)`|`benchmark` takes a list of s-expressions and evaluates them in the order they were given (in the current scope), and then returns the result of the last s-expression and prints msg_string and timing info.||Language|
|
||||||
|
|
||||||
## Library
|
## Library
|
||||||
|Signature|Description|Return values|
|
|Signature|Description|Return values|Section|
|
||||||
|:-|-|-|
|
|:-|-|-|-|
|
||||||
|`(= a b)`|Test whether two values are equal|`1` when equal otherwise `nil`|
|
|`(= a b)`|Test whether two values are equal|`1` when equal otherwise `nil`|Language|
|
||||||
|`(!= a b)`|Test whether two values are not equal|`1` when not equal otherwise `nil`|
|
|`(!= a b)`|Test whether two values are not equal|`1` when not equal otherwise `nil`|Language|
|
||||||
|`(> a b)`|Test whether one value is greater to another |`1` when greater otherwise `nil`|
|
|`(> a b)`|Test whether one value is greater to another |`1` when greater otherwise `nil`|Language|
|
||||||
|`(< a b)`|Test whether one value is less to another |`1` when less otherwise `nil`|
|
|`(< a b)`|Test whether one value is less to another |`1` when less otherwise `nil`|Language|
|
||||||
|`(>= a b)`|Test whether one value is greater or equal to another |`1` when greater or equal otherwise `nil`|
|
|`(>= a b)`|Test whether one value is greater or equal to another |`1` when greater or equal otherwise `nil`|Language|
|
||||||
|`(<= a b)`|Test whether one value is less or equal to another |`1` when less or equal otherwise `nil`|
|
|`(<= a b)`|Test whether one value is less or equal to another |`1` when less or equal otherwise `nil`|Language|
|
||||||
|`(+ a b ..)`|Sum multiple values |sum of values|
|
|`(+ a b ..)`|Sum multiple values |sum of values|Language|
|
||||||
|`(- a b)`|Substract two values |result of substraction|
|
|`(- a b)`|Substract two values |result of substraction|Language|
|
||||||
|`(* a b ..)`|Multiply several values|result of multiplication|
|
|`(* a b ..)`|Multiply several values|result of multiplication|Language|
|
||||||
|`(/ a b)`|Divide two values|result of division|
|
|`(/ a b)`|Divide two values|result of division|Language|
|
||||||
|`(% a b)`|Remainder of division|result of operation|
|
|`(% a b)`|Remainder of division|result of operation|Language|
|
||||||
|`(list ..)`|Create a list of values||
|
|`(list ..)`|Create a list of values||List manipulation|
|
||||||
|`(insert list index element)`|Insert an element into a list. Indexed from 0|new list with value inserted|
|
|`(insert list index element)`|Insert an element into a list. Indexed from 0|new list with value inserted|List manipulation|
|
||||||
|`(index list index)`|Return element at index in list. First element is at index 0|Element at index|
|
|`(index list index)`|Return element at index in list. First element is at index 0|Element at index|List manipulation|
|
||||||
|`(remove list index)`|Remove a value at an index from a list|List with element removed|
|
|`(remove list index)`|Remove a value at an index from a list|List with element removed|List manipulation|
|
||||||
|`(len list)`|Get the length of a list|list length|
|
|`(len list)`|Get the length of a list|list length|List manipulation|
|
||||||
|`(push list element)`|Add an item to the end of a list|new list with element added|
|
|`(push list element)`|Add an item to the end of a list|new list with element added|List manipulation|
|
||||||
|`(pop list)`|Returns last element of list|Last element|
|
|`(pop list)`|Returns last element of list|Last element|List manipulation|
|
||||||
|`(head list)`|Returns first element of a list|First element|
|
|`(head list)`|Returns first element of a list|First element|List manipulation|
|
||||||
|`(tail list)`|Return all elements of list except first one|List without first element|
|
|`(tail list)`|Return all elements of list except first one|List without first element|List manipulation|
|
||||||
|`(first list)`|Returns first element of a list|First element|
|
|`(first list)`|Returns first element of a list|First element|List manipulation|
|
||||||
|`(last list)`|Returns last element of list|Last element|
|
|`(last list)`|Returns last element of list|Last element|List manipulation|
|
||||||
|`(range low high)`|Returns list with elements in range low .. high|`(range 1 5) => (1 2 3 4)`|
|
|`(range low high)`|Returns list with elements in range low .. high|`(range 1 5) => (1 2 3 4)`|List manipulation|
|
||||||
|`(member list item)`|Returns true when list contains item||
|
|`(member list item)`|Returns true when list contains item||List manipulation|
|
||||||
|`(uniq list)`|Returns list with removed duplicates ||
|
|`(uniq list)`|Returns list with removed duplicates ||List manipulation|
|
||||||
|`(make-list len)`|Return list with len nil elements|`(make-list 3) => (nil nil nil)`|
|
|`(make-list len)`|Return list with len nil elements|`(make-list 3) => (nil nil nil)`|List manipulation|
|
||||||
|`(make-list-of len value)`|Return list with len value elements||
|
|`(make-list-of len value)`|Return list with len value elements||List manipulation|
|
||||||
|`(map ..)`||`(map (lambda (x) (+ x 10)) '(1 2 3 4 5 6)) => (11 12 13 14 15 16)`|
|
|`(map ..)`||`(map (lambda (x) (+ x 10)) '(1 2 3 4 5 6)) => (11 12 13 14 15 16)`|List manipulation|
|
||||||
|`(filter lambda list)`||`(filter (lambda (x) (> x 2)) '(1 2 3 4 5)) => (3 4 5)`|
|
|`(filter lambda list)`||`(filter (lambda (x) (> x 2)) '(1 2 3 4 5)) => (3 4 5)`|List manipulation|
|
||||||
|`(reduce lambda acumulator list)`||`>>> (reduce (lambda (x y) (+ (* x 10) y)) 0 '(1 2 3 4)) => 1234`|
|
|`(reduce lambda acumulator list)`||`>>> (reduce (lambda (x y) (+ (* x 10) y)) 0 '(1 2 3 4)) => 1234`|List manipulation|
|
||||||
|`(exit code)`|Exit the program with an integer code||
|
|`(exit code)`|Exit the program with an integer code||System|
|
||||||
|`(quit code)`|Same as (exit ..)||
|
|`(quit code)`|Same as (exit ..)||System|
|
||||||
|`(print ..)`|Print several values and return the last one||
|
|`(print ..)`|Print several values and return the last one||IO|
|
||||||
|`(input [prompt])`|Get user input with an optional prompt||
|
|`(input [prompt])`|Get user input with an optional prompt||IO|
|
||||||
|`(random low high)`|Get a random number between two numbers inclusively||
|
|`(random low high)`|Get a random number between two numbers inclusively||System|
|
||||||
|`(include file)`|Read a file and execute its code||
|
|`(include file)`|Read a file and execute its code||IO|
|
||||||
|`(read-file filename)`|Get the contents of a file||
|
|`(read-file filename)`|Get the contents of a file||IO|
|
||||||
|`(read-file-lines filename lambda)`|Reads file and for each line call lambda with passing the line as a parameter|`(read-file-lines "/tmp/f.txt" (lambda (ln) (print ln))`|
|
|`(read-file-lines filename lambda)`|Reads file and for each line call lambda with passing the line as a parameter|`(read-file-lines "/tmp/f.txt" (lambda (ln) (print ln))`|IO|
|
||||||
|`(write-file filename content-str)`|Write a string to a file||
|
|`(write-file filename content-str)`|Write a string to a file||IO|
|
||||||
|`(read-url url [headers] [body] [method])`|Reads URL|Returns list (status-code content)|
|
|`(read-url url [headers] [body] [method])`|Reads URL|Returns list (status-code content)|IO|
|
||||||
|`(system-cmd command_str)`|Execute system command||
|
|`(system-cmd command_str)`|Execute system command||System|
|
||||||
|`(ls-dir dir)`|List a dir|List of directory entries|
|
|`(ls-dir dir)`|List a dir|List of directory entries|
|
||||||
|`(is-file? filename)`|Returns true if passed filename is a file||
|
|`(is-file? filename)`|Returns true if passed filename is a file||IO|
|
||||||
|`(is-dir? filename)`|Returns true if passed filename is a directory||
|
|`(is-dir? filename)`|Returns true if passed filename is a directory||IO|
|
||||||
|`(tcp-server port handler)`|Starts listening on port and when request comes calls passed lambda and writes its returned value back to client. Lambda must return either string or two element list where first element is boolean and second string.When first element is true it closes listening socker.|(`tcp-server 7777 (lambda (str) (list #t (string-upcase str))))`|
|
|`(tcp-server port handler)`|Starts listening on port and when request comes calls passed lambda and writes its returned value back to client. Lambda must return either string or two element list where first element is boolean and second string.When first element is true it closes listening socker.|(`tcp-server 7777 (lambda (str) (list #t (string-upcase str))))`|IO|
|
||||||
|`(tcp-client address port data)`|Opens connection to server on port, writes there data and returns response.|`(print (tcp-client "127.0.0.1" 7777 "abcd"))`|
|
|`(tcp-client address port data)`|Opens connection to server on port, writes there data and returns response.|`(print (tcp-client "127.0.0.1" 7777 "abcd"))`|IO|
|
||||||
|`(is-dir? filename)`|Returns true if passed filename is a directory||
|
|`(is-dir? filename)`|Returns true if passed filename is a directory||IO|
|
||||||
|`(parse-csv string)`|Parse CSV string||
|
|`(parse-csv string)`|Parse CSV string||String manipulation|
|
||||||
|`(parse-json json_string)`|Parse JSON string||
|
|`(parse-json json_string)`|Parse JSON string||String manipulation|
|
||||||
|`(save-csv ..)`|||
|
|`(save-csv ..)`|Save list as csv||IO|
|
||||||
|`(get-universal-time)`|Get current time as secs from epoch||
|
|`(get-universal-time)`|Get current time as secs from epoch|`>>> (get-universal-time) => 1642152733`|Date and time|
|
||||||
|`(get-localtime-offset)`|Offset in seconds between local time and gmt time||
|
|`(get-localtime-offset)`|Offset in seconds between local time and gmt time||Date and time|
|
||||||
|`(date-to-str date format)`|Converts date to formated string. Format is strftime format (https://www.tutorialspoint.com/c_standard_library/c_function_strftime.htm)|`>>> (date-to-str (get-universal-time) "%Y-%m-%d %H:%M:%S")
|
|`(date-to-str date format)`|Converts date to formated string. Format is strftime format (https://www.tutorialspoint.com/c_standard_library/c_function_strftime.htm)|`>>> (date-to-str (get-universal-time) "%Y-%m-%d %H:%M:%S") => "2021-03-13 19:53:01"`|Date and time|
|
||||||
=> "2021-03-13 19:53:01"`|
|
|`(str-to-date string format)`|Converst string to time of secs since epoch. |`>>> (str-to-date "2021-03-13 19:53:01" "%Y-%m-%d %H:%M:%S") => 1615665181`|Date and time|
|
||||||
|`(str-to-date string format)`|Converst string to time of secs since epoch. |`>>> (str-to-date "2021-03-13 19:53:01" "%Y-%m-%d %H:%M:%S") => 1615665181`|
|
|`(date-add date amount unit)`|Add number of units to date. A unit is one of 'year', 'month', 'day', 'hour', 'minute' or 'second'|`>>> (date-to-str (date-add (str-to-date "2021-03-13 19:53:01" "%Y-%m-%d %H:%M:%S") 10 "day") "%Y-%m-%d %H:%M:%S") => "2021-03-23 20:53:01"`|Date and time|
|
||||||
|`(date-add date amount unit)`|Add number of units to date. A unit is one of 'year', 'month', 'day', 'hour', 'minute' or 'second'|`>>> (date-to-str (date-add (str-to-date "2021-03-13 19:53:01" "%Y-%m-%d %H:%M:%S") 10 "day") "%Y-%m-%d %H:%M:%S") => "2021-03-23 20:53:01"`|
|
|`start-of-day datetime`||`>>> (start-of-day (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1620864000`|Date and time|
|
||||||
|`start-of-day datetime`||`>>> (start-of-day (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1620864000`|
|
|`end-of-day datetime`||`>>> (end-of-day (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1620950399`|Date and time|
|
||||||
|`end-of-day datetime`||`>>> (end-of-day (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1620950399`|
|
|`start-of-month datetime`||`>>> (start-of-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1619827200`|Date and time|
|
||||||
|`start-of-month datetime`||`>>> (start-of-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1619827200`|
|
|`start-of-next-month datetime`||`>>> (end-of-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1622505599`|Date and time|
|
||||||
|`start-of-next-month datetime`||`>>> (end-of-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1622505599`|
|
|`end-of-next-month datetime`||`>>> (start-of-next-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1622505600`|Date and time|
|
||||||
|`end-of-next-month datetime`||`>>> (start-of-next-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1622505600`|
|
|`end-of-month datetime`||`>>> (end-of-next-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1625097599`|Date and time|
|
||||||
|`end-of-month datetime`||`>>> (end-of-next-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1625097599`|
|
|`start-of-prev-month datetime`||`>>> (start-of-prev-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1617235200`|Date and time|
|
||||||
|`start-of-prev-month datetime`||`>>> (start-of-prev-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1617235200`|
|
|`end-of-prev-month datetime`||`>>> (end-of-prev-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1619827199`|Date and time|
|
||||||
|`end-of-prev-month datetime`||`>>> (end-of-prev-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1619827199`|
|
|`start-of-year datetime`||`>>> (start-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1609459200`|Date and time|
|
||||||
|`start-of-year datetime`||`>>> (start-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1609459200`|
|
|`end-of-year datetime`||`>>> (end-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1640995199`|Date and time|
|
||||||
|`end-of-year datetime`||`>>> (end-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S")) => 1640995199`|
|
|`(debug ..)`|||IO|
|
||||||
|`(debug ..)`|||
|
|`(display ..)`|Displays passed parameters|`>>> (display '(1 2 3)) => "(1 2 3)"`|IO|
|
||||||
|`(display ..)`|Displays passed parameters|`>>> (display '(1 2 3)) => "(1 2 3)"`|
|
|`(string-replace source substr replacement)`|Replace a substring with a replacement string in a source string|`>>> (string-replace "abcdefg" "de" "DE") => "abcDEfg"`|String manipulation|
|
||||||
|`(string-replace source substr replacement)`|Replace a substring with a replacement string in a source string|`>>> (string-replace "abcdefg" "de" "DE") => "abcDEfg"`|
|
|`(string-replace-re source substr replacement)`|Replace a substring regex with a replacement string in a source string|`>>> (string-replace-re "there is a subsequence in the string" "\\b(sub)([^ ]*)" "sub-$2") => "there is a sub-sequence in the string"`|String manipulation|
|
||||||
|`(string-replace-re source substr replacement)`|Replace a substring regex with a replacement string in a source string|`>>> (string-replace-re "there is a subsequence in the string" "\\b(sub)([^ ]*)" "sub-$2") => "there is a sub-sequence in the string"`|
|
|`(string-regex? where regex)`| Returns true if where contains regex|`>>> (string-regex? "aba123cdefg" "[0-9]+") => 1`|Regex|
|
||||||
|`(string-regex? where regex)`| Returns true if where contains regex|`>>> (string-regex? "aba123cdefg" "[0-9]+") => 1`|
|
|`(string-regex-list where regex [mode] [ignorecase])`| Returns list of substring from where captured by regex in mode match or tokens|`>>> (string-regex-list "<td class=\"xyz\">1</td><td>2</td>" "<td.*?>(.*?)</td>" "match" "ignore") => (("<td class=\"xyz\">1</td>" "<td>2</td>"))` `>>> (string-regex-list "<td class=\"xyz\">1</td><td>2</td>" "<td.*?>(.*?)</td>" "token") => (("1") ("2"))`|Regex|
|
||||||
|`(string-regex-list where regex [mode] [ignorecase])`| Returns list of substring from where captured by regex in mode match or tokens|`>>> (string-regex-list "<td class=\"xyz\">1</td><td>2</td>" "<td.*?>(.*?)</td>" "match" "ignore") => (("<td class=\"xyz\">1</td>" "<td>2</td>"))` `>>> (string-regex-list "<td class=\"xyz\">1</td><td>2</td>" "<td.*?>(.*?)</td>" "token") => (("1") ("2"))`|
|
|`(string-pad str len char rpad_lpad)`|||String manipulation|
|
||||||
|`(string-pad str len char rpad_lpad)`|||
|
|`(string-lpad str len char)`|Pad string from start with char to length len|`>>> (string-lpad "0" 10 "x") => "xxxxxxxxx0"`|String manipulation|
|
||||||
|`(string-lpad str len char)`|Pad string from start with char to length len|`>>> (string-lpad "0" 10 "x") => "xxxxxxxxx0"`|
|
|`(string-rpad str len char)`|Pad string from righ with char to length len|`>>> (string-rpad "0" 10 "x") => "0xxxxxxxxx"`|String manipulation|
|
||||||
|`(string-rpad str len char)`|Pad string from righ with char to length len|`>>> (string-rpad "0" 10 "x") => "0xxxxxxxxx"`|
|
|
||||||
|`(string-split str separator)`|Splits string into list by regexp|`>>> (string-split "split me by space" "\s+") => ("split" "me" "by" "space")`|
|
|`(string-split str separator)`|Splits string into list by regexp|`>>> (string-split "split me by space" "\s+") => ("split" "me" "by" "space")`|
|
||||||
`(string-rltrim str len RKRRKR)`| ||
|
|`(string-rltrim str len RKRRKR)`|||Regex|
|
||||||
`(string-ltrim str)`|Removes " \n\r\t" from the begininfg of str||
|
|`(string-ltrim str)`|Removes " \n\r\t" from the begininfg of str||String manipulation|
|
||||||
`(string-rtrim str)`|Removes " \n\r\t" from the end of str||
|
|`(string-rtrim str)`|Removes " \n\r\t" from the end of str||String manipulation|
|
||||||
`(string-trim str)`|Removes " \n\r\t" from the both strart and end of str||
|
|`(string-trim str)`|Removes " \n\r\t" from the both strart and end of str||String manipulation|
|
||||||
`(string-case str RKRRKR)`|||
|
|`(string-case str RKRRKR)`|||String manipulation|
|
||||||
`(string-upcase str)`|Returns up cased string|`>>> (string-upcase "abcdefghchijklmn") => "ABCDEFGHCHIJKLMN"`|
|
|`(string-upcase str)`|Returns up cased string|`>>> (string-upcase "abcdefghchijklmn") => "ABCDEFGHCHIJKLMN"`|String manipulation|
|
||||||
`(string-downcase str)`|Returns down cased string |`>>> (string-downcase "ABCDefghchijklmn") => "abcdefghchijklmn"`|
|
|`(string-downcase str)`|Returns down cased string |`>>> (string-downcase "ABCDefghchijklmn") => "abcdefghchijklmn"`|String manipulation|
|
||||||
`(string-join lst sep)`|Returns string created as elements of concatenation of lst elements separated by sep|`>>> (string-join ("A" "B" "C" "D") ",") => "A,B,C,D"`|
|
|`(string-join lst sep)`|Returns string created as elements of concatenation of lst elements separated by sep|`>>> (string-join ("A" "B" "C" "D") ",") => "A,B,C,D"`|String manipulation|
|
||||||
`(string-len str)`|Returns string length|`>>> (string-len "abcdef") => 6`|
|
|`(string-len str)`|Returns string length|`>>> (string-len "abcdef") => 6`|String manipulation|
|
||||||
`(string-substr str pos len`|Returns substring from str starting at pos with len. If pos is negative returns substring from the end of string. First character is on pos 0|`>>> (string-substr "ABCD" -2 2) => "CD"`|
|
|`(string-substr str pos len`|Returns substring from str starting at pos with len. If pos is negative returns substring from the end of string. First character is on pos 0|`>>> (string-substr "ABCD" -2 2) => "CD"`|String manipulation|
|
||||||
`(string-find str lookup pos`|Returns position of lookup in str starting on position. First char index is 0. If not found returns nil|`>>> (string-find " long long int;" "long" 2) => 6`|
|
|`(string-find str lookup pos`|Returns position of lookup in str starting on position. First char index is 0. If not found returns nil|`>>> (string-find " long long int;" "long" 2) => 6`|String manipulation|
|
||||||
|`(int value)`|Cast an item to an int|`>>> (int 3.41) => 3`|
|
|`(int value)`|Cast an item to an int|`>>> (int 3.41) => 3`|Type casting|
|
||||||
|`(float value)`|Cast item to a float|`>>> (int 3.41) => 3.14`|
|
|`(float value)`|Cast item to a float|`>>> (int 3.41) => 3.14`|Type casting|
|
||||||
|`(string value)`|Cast int or float item to a string|`>>> (string 3.14) => "3.14"`|
|
|`(string value)`|Cast int or float item to a string|`>>> (string 3.14) => "3.14"`|Type casting|
|
||||||
|`(eval <exp>)`|Eval returns the value of the second evaluation|`>>> (eval '(+ 1 2)) => 3`|
|
|`(eval <exp>)`|Eval returns the value of the second evaluation|`>>> (eval '(+ 1 2)) => 3`|Language|
|
||||||
|`(type e)`|Returns data type of e|`>>> (type (+ 1 2)) => "int"`|
|
|`(type e)`|Returns data type of e|`>>> (type (+ 1 2)) => "int"`|Type casting|
|
||||||
|`(parse ..)`||`>>> (eval (first (parse "(+ 1 2)"))) => 3`|
|
|`(parse ..)`||`>>> (eval (first (parse "(+ 1 2)"))) => 3`|Language|
|
||||||
|`(make-list-of size value)`|Makes list with size elements of values|`>>> (make-list-of 5 0) => (0 0 0 0 0)`|
|
|`(make-list-of size value)`|Makes list with size elements of values|`>>> (make-list-of 5 0) => (0 0 0 0 0)`|List manipulation|
|
||||||
|`(make-list size)`|Makes list of nil values with size length|`>>> (make-list 5) => (nil nil nil nil nil)`|
|
|`(make-list size)`|Makes list of nil values with size length|`>>> (make-list 5) => (nil nil nil nil nil)`|List manipulation|
|
||||||
|`(empty-list? lst)`|Return true is lst is list with zero elements|`>>> (empty-list? '()) => 1`|
|
|`(empty-list? lst)`|Return true is lst is list with zero elements|`>>> (empty-list? '()) => 1`|Type casting|
|
||||||
|`(memeber lst item)`|Returns 1 when item is inluded in lst otherwise 0||
|
|`(memeber lst item)`|Returns 1 when item is inluded in lst otherwise 0||List manipulation|
|
||||||
|`(uniq list)`|Filter out any duplicates from list|`>>> (uniq '(1 2 2 3 4 5 2 2)) => (1 2 3 4 5)`|
|
|`(uniq list)`|Filter out any duplicates from list|`>>> (uniq '(1 2 2 3 4 5 2 2)) => (1 2 3 4 5)`|List manipulation|
|
||||||
|`(flatten list)`||`>>> (flatten '(1 (2 2) 3)) => (1 2 2 3)`|
|
|`(flatten list)`||`>>> (flatten '(1 (2 2) 3)) => (1 2 2 3)`|List manipulation|
|
||||||
|`(quick-sort-by list cmp)`|||
|
|`(quick-sort-by list cmp)`|||Language|
|
||||||
|`(quick-sort list)`|return sorted list|`>>> (quick-sort '(2 4 6 1 7 3 3 9 5)) => (1 2 3 3 4 5 6 7 9)`|
|
|`(quick-sort list)`|return sorted list|`>>> (quick-sort '(2 4 6 1 7 3 3 9 5)) => (1 2 3 3 4 5 6 7 9)`|Language|
|
||||||
|`(quick-sort-reverse list)`|return reverse sorted list|`>>> (quick-sort-reverse '(2 4 6 1 7 3 3 9 5)) => (9 7 6 5 4 3 3 2 1)`|
|
|`(quick-sort-reverse list)`|return reverse sorted list|`>>> (quick-sort-reverse '(2 4 6 1 7 3 3 9 5)) => (9 7 6 5 4 3 3 2 1)`|Language|
|
||||||
|`(not c)`|Logical NOT of c|`>>> (not 1) => nil`|
|
|`(not c)`|Logical NOT of c|`>>> (not 1) => nil`|Logical|
|
||||||
|`(neg n)`|Negates number|`>>> (neg -5) => 5`|
|
|`(neg n)`|Negates number|`>>> (neg -5) => 5`|Language|
|
||||||
|`(is-pos? n)`|Returns true if n is positive number||
|
|`(is-pos? n)`|Returns true if n is positive number||Language|
|
||||||
|`(is-neg? n)`|Returns true if n is negative number||
|
|`(is-neg? n)`|Returns true if n is negative number||Language|
|
||||||
|`(dec n)`|Return n decremented by 1|`>>> (dec 5) => 4`|
|
|`(dec n)`|Return n decremented by 1|`>>> (dec 5) => 4`|Language|
|
||||||
|`(inc n)`|Return n incremented by 1|`>>> (inc 5) => 6`|
|
|`(inc n)`|Return n incremented by 1|`>>> (inc 5) => 6`|Language|
|
||||||
|`(sleep time)`|Pauses execution for time interval of seconds||
|
|`(sleep time)`|Pauses execution for time interval of seconds||System|
|
||||||
|`(get-env var)`|Return environment variable var|`>>> (get-env "HOME") => "/Users/vaclavt"`|
|
|`(get-env var)`|Return environment variable var|`>>> (get-env "HOME") => "/Users/vaclavt"`|System|
|
||||||
|`(second list)`|Returns second element of list|`>>> (second '(1 2 3 4 5 6 7)) => 2`|
|
|`(second list)`|Returns second element of list|`>>> (second '(1 2 3 4 5 6 7)) => 2`|List manipulation|
|
||||||
|`(third list)`|Returns third element of list|`>>> (third '(1 2 3 4 5 6 7)) => 3`|
|
|`(third list)`|Returns third element of list|`>>> (third '(1 2 3 4 5 6 7)) => 3`|List manipulation|
|
||||||
|`(fourth list)`|Returns fourth element of list|`>>> (fourth '(1 2 3 4 5 6 7)) => 4`|
|
|`(fourth list)`|Returns fourth element of list|`>>> (fourth '(1 2 3 4 5 6 7)) => 4`|List manipulation|
|
||||||
|`(fifth list)`|Returns fifth element of list|`>>> (fifth '(1 2 3 4 5 6 7)) => 5`|
|
|`(fifth list)`|Returns fifth element of list|`>>> (fifth '(1 2 3 4 5 6 7)) => 5`|List manipulation|
|
||||||
|`(nth i list)`|Return i-th elemenet of list. First element has index 1|`>>> (nth 7 '(1 2 3 4 5 6 7)) => 7`|
|
|`(nth i list)`|Return i-th elemenet of list. First element has index 1|`>>> (nth 7 '(1 2 3 4 5 6 7)) => 7`|List manipulation|
|
||||||
|`( make-csv list)`|creates csv string from list of lists|(print (make-csv '(("r1c1" "r1c2") ("r2c1" "r2c2"))))
|
|`(make-csv list)`|creates csv string from list of lists|(print (make-csv '(("r1c1" "r1c2") ("r2c1" "r2c2"))))|List manipulation|
|
||||||
|`(sprintf ..)`||`>>> (sprintf "%s, %d, %.2f" (list "string" 1000 3.14)) => "string, 1000, 3.14"`|
|
|`(sprintf ..)`||`>>> (sprintf "%s, %d, %.2f" (list "string" 1000 3.14)) => "string, 1000, 3.14"`|String manipulation|
|
||||||
|`(thread-create code..)`|Creates new thread, starts evalueating code and returns immediatelly thread id||
|
|`(thread-create code..)`|Creates new thread, starts evalueating code and returns immediatelly thread id||Threading|
|
||||||
|`(thread-under-lock lockname code)`|Acquire lock with lockname and eval code. "ilock" currently is only allowed lockname||
|
|`(thread-under-lock lockname code)`|Acquire lock with lockname and eval code. "ilock" currently is only allowed lockname||Threading|
|
||||||
|`(thread-sleep milisecons)`|Sleeps thread for given amount of miliseconds||
|
|`(thread-sleep milisecons)`|Sleeps thread for given amount of miliseconds||Threading|
|
||||||
|`(threads-join)`|Wait for all running threads to finish||
|
|`(threads-join)`|Wait for all running threads to finish||Threading|
|
||||||
|`(try block catch_block [finally_block])`|Evaluates block and if an exception is thrown, evaluates catch_block.Eventually in both cases evals finally_block. Return evaluated last expression from block if no exception or last expression from catch_block, if exception is thrown from block. Variable ml-exception in catch block is available with astring describing exception||
|
|`(try block catch_block [finally_block])`|Evaluates block and if an exception is thrown, evaluates catch_block.Eventually in both cases evals finally_block. Return evaluated last expression from block if no exception or last expression from catch_block, if exception is thrown from block. Variable ml-exception in catch block is available with astring describing exception||Exceptions|
|
||||||
|`(throw-exception exp_desc)`|Throws an exception with exp_desc describing what happened ||
|
|`(throw-exception exp_desc)`|Throws an exception with exp_desc describing what happened ||Exceptions|
|
||||||
|`(xx ..)`|||
|
|`(xx ..)`||||
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue