My list processing language.
Install it by the following command:
npm install -g @xieyuheng/x-lisp.js
The command-line program is called x-lisp.js
.
See more examples at examples
directory.
in builtin:
true
false
(bool? value)
(not bool)
in builtin:
(int? value)
(ineg x)
(iadd x y)
(isub x y)
(imul x y)
(idiv x y)
(imod x y)
(int-max x y)
(int-min x y)
(int-larger? x y)
(int-smaller? x y)
(int-larger-or-equal? x y)
(int-smaller-or-equal? x y)
(int-positive? x)
(int-non-negative? x)
in builtin:
(float? value)
(fneg x)
(fadd x y)
(fsub x y)
(fmul x y)
(fdiv x y)
(float-max x y)
(float-min x y)
(float-larger? x y)
(float-smaller? x y)
(float-larger-or-equal? x y)
(float-smaller-or-equal? x y)
(float-positive? x)
(float-non-negative? x)
in builtin:
(symbol? value)
(symbol-length symbol)
(symbol-to-string symbol)
(symbol-append left right)
(symbol-append-many list)
in builtin:
(string? value)
(string-length string)
(string-to-symbol string)
(string-append left right)
(string-append-many list)
(string-join separator list)
(string-chars string)
in builtin:
(same? lhs rhs)
(equal? lhs rhs)
(atom? value)
(anything? value)
in builtin:
(list-empty? value)
(list? p target)
(car list)
(cdr list)
(cons head tail)
(list-head list)
(list-tail list)
(list-init list)
(list-last list)
(list-length list)
(list-of list)
(list-get index list)
(list-put index value list)
(list-put! index value list)
(list-push value list)
(list-push! value list)
(list-reverse list)
(list-member? x list)
(list-to-set list)
in std
:
(list-first list)
(list-second list)
(list-third list)
(list-map f list)
(list-filter p list)
(list-append list tail)
(list-append-many lists)
(list-append-map f list)
(list-unit x)
(list-lift f list)
(list-bind list f)
(list-take n list)
(list-drop n list)
(list-fold-left op e list)
(list-fold-right op e list)
(list-zip left right)
(list-unzip pairs)
(list-map-zip f left right)
(list-all? p list)
(list-any? p list)
in builtin:
(record? p target)
(record-length record)
(record-keys record)
(record-values record)
(record-entries record)
(record-append record rest)
(record-of record)
(record-empty? record)
(record-get key record)
(record-has? key record)
(record-put key value record)
(record-put! key value record)
(record-delete key record)
(record-delete! key record)
(record-map fn record)
in std
:
(record-from-entries entries)
(record-put-many entries record)
(record-filter p record)
in builtin:
(set? value)
(set-empty? set)
(set-size set)
(set-member? value set)
(set-include? subset set)
(set-to-list set)
(set-add value set)
(set-add! value set)
(set-remove value set)
(set-remove! value set)
(set-clear! set)
(set-union left right)
(set-inter left right)
(set-difference left right)
(set-disjoint? left right)
in builtin:
(negate p x)
(union-fn ps x)
(inter-fn ps x)
in builtin:
(sexp? value)
(parse-sexp string)
(parse-sexps string)
(format-sexp sexp)
in builtin:
(file-exists? path)
(file-size path)
(file-load path)
(file-save path text)
(file-remove path)
(directory-exists? path)
(directory-create path)
(directory-create-recursively path)
(directory-remove path)
(directory-remove-recursively path)
(directory-files path)
(directory-files-recursively path)
(directory-directories path)
(directory-directories-recursively path)
in builtin:
(path-join list)
in builtin:
(current-working-directory)
(exit sexp)
in builtin:
(current-module-file)
(current-module-directory)
in builtin:
(print value)
(println value)
(write string)
(writeln string)
in builtin:
void
(void? value)
in builtin:
null
(null? value)
in builtin:
(apply f args)
(pipe-fn x fs)
(compose-fn fs x)
in std
:
(identity x)
(constant x y)
(swap f x y)
in builtin:
(format-subscript n)
(format-superscript n)
in std
:
(when p t)
(unless p f)
in std
:
(optional? p x)
in builtin:
(random-int start end)
(random-float start end)
in builtin:
(system-shell-run command args)
npm install
npm run build
npm run test