diff --git a/docs/index.rst b/docs/index.rst index a0b96729..d1401fa6 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,6 +13,7 @@ Contents: intro.rst lang.rst + libs.rst Indices and tables ================== diff --git a/docs/lang.rst b/docs/lang.rst index 220addb2..ec149d98 100644 --- a/docs/lang.rst +++ b/docs/lang.rst @@ -1,106 +1,7 @@ Language ======== -The language provided by picrin. - -Libraries ---------- - -- ``(scheme base)`` -- ``(scheme write)`` -- ``(scheme cxr)`` -- ``(scheme file)`` -- ``(scheme inexact)`` -- ``(scheme time)`` -- ``(scheme process-context)`` -- ``(scheme load)`` -- ``(scheme lazy)`` -- ``(picrin macro)`` - - - ``define-macro`` - - ``gensym`` - - ``macroexpand`` - - Old-fashioned macro. - - - ``make-syntactic-closure`` - - ``identifier?`` - - ``identifier=?`` - - Syntactic closures. - - - ``er-macro-transformer`` - - ``ir-macro-transformer`` - - Explicit renaming macro family. - -- ``(picrin regexp)`` - - - ``(regexp? obj)`` - - ``(regexp ptrn [flags])`` - - Compiles pattern string into a regexp object. A string ``flags`` may contain any of #\g, #\i, #\m. - - - ``(regexp-match re input)`` - - Returns two values: a list of match strings, and a list of match indeces. - - - ``(regexp-replace re input txt)`` - - ``(regexp-split re input)`` - -- ``(picrin control)`` - - - ``(reset h)`` - - ``(shift k)`` - - Delimited control operators. - -- ``(picrin dictionary)`` - - Symbol to Object table. Internally it is implemented on hash-table. - - Note that dictionary is not a weak map; if you are going to make a highly memory-consuming program with dictionaries, you should know that dictionaries keep their bound objects and never let them free until you explicitly deletes bindings. - - - ``(dictionary)`` - - Returns a newly allocated empty dictionary. In the future, it is planned to extend this function to take optional arguments for initial key/values. - - - ``(dictionary? obj)`` - - Returns ``#t`` if obj is a dictionary. - - - ``(dictionary-ref dict key)`` - - Look up dictionary dict for a value associated with symbol key. If no object is associated with key, it will raise an error. - - - ``(dictionary-set! dict key obj)`` - - If there is no value already associated with key, this function newly creates a binding of key with obj. Otherwise, updates the existing binding with given obj. - - - ``(dictionary-delete dict key)`` - - Deletes the binding associated with key from dict. If no binding on dict is associated with key, an error will be raised. - - - - ``(dictionary-size dict)`` - - Returns the number of registered elements in dict. - -- ``(picrin user)`` - - When you start the REPL, you are dropped into here. - -- ``(srfi 1)`` - - List manipulation library. - -- ``(srfi 26)`` - - Cut/cute macros. - -- ``(srfi 95)`` - - Sorting and Marging. +Picrin's core language is the R7RS scheme with some powerful extensions. Please visit http://r7rs.org/ for the information of R7RS's design and underlying thoughts. The REPL -------- diff --git a/docs/libs.rst b/docs/libs.rst new file mode 100644 index 00000000..79457e17 --- /dev/null +++ b/docs/libs.rst @@ -0,0 +1,116 @@ +Libraries +========= + +Picrin's all built-in libraries are described below. + +Scheme standard libraries +------------------------- + +- (scheme write) +- (scheme cxr) +- (scheme file) +- (scheme inexact) +- (scheme time) +- (scheme process-context) +- (scheme load) +- (scheme lazy) + +SRFI libraries +-------------- + +- (srfi 1) + + List manipulation library. + +- (srfi 26) + + Cut/cute macros. + +- (srfi 95) + + Sorting and Marging. + + +Macros +------ + +(picrin macro) +^^^^^^^^^^^^^^ + +- define-macro +- gensym +- macroexpand + +Old-fashioned macro. + +- make-syntactic-closure +- identifier? +- identifier=? + +Syntactic closures. + +- er-macro-transformer +- ir-macro-transformer + +Explicit renaming macro family. + +(picrin regexp) +^^^^^^^^^^^^^^^ + +- (regexp? obj) +- (regexp ptrn [flags]) + +Compiles pattern string into a regexp object. A string flags may contain any of #\g, #\i, #\m. + +- (regexp-match re input) + +Returns two values: a list of match strings, and a list of match indeces. + +- (regexp-replace re input txt) +- (regexp-split re input) + +(picrin control) +^^^^^^^^^^^^^^^^ + +- (reset h) +- (shift k) + +Delimited control operators. + +(picrin dictionary) +^^^^^^^^^^^^^^^^^^^ + +Symbol to Object table. Internally it is implemented on hash-table. + +Note that dictionary is not a weak map; if you are going to make a highly memory-consuming program with dictionaries, you should know that dictionaries keep their bound objects and never let them free until you explicitly deletes bindings. + +- (dictionary) + + Returns a newly allocated empty dictionary. In the future, it is planned to extend this function to take optional arguments for initial key/values. + +- (dictionary? obj) + + Returns #t if obj is a dictionary. + +- (dictionary-ref dict key) + + Look up dictionary dict for a value associated with symbol key. If no object is associated with key, it will raise an error. + +- (dictionary-set! dict key obj) + + If there is no value already associated with key, this function newly creates a binding of key with obj. Otherwise, updates the existing binding with given obj. + +- (dictionary-delete dict key) + + Deletes the binding associated with key from dict. If no binding on dict is associated with key, an error will be raised. + + +- (dictionary-size dict) + + Returns the number of registered elements in dict. + +(picrin user) +^^^^^^^^^^^^^ + +When you start the REPL, you are dropped into here. +