(gc ['cnt [cnt2]]) -> cnt | NIL
- Forces a garbage collection. When
cnt
is given, so many
megabytes of free cells are reserved, increasing the heap size if necessary. If
cnt
is zero, all currently unused heap blocks are purged,
decreasing the heap size if possible. If cnt2
is given, the reserve
size (defaults to 1 megabyte) is set to that value. See also heap
.
: (gc)
-> NIL
: (heap)
-> 2
: (gc 4)
-> 4
: (heap)
-> 5
(ge0 'any) -> num | NIL
- Returns
num
when the argument is a number and greater or equal
zero, otherwise NIL
. See also lt0
, le0
, gt0
, =0
and n0
.
: (ge0 -2)
-> NIL
: (ge0 3)
-> 3
: (ge0 0)
-> 0
(genKey 'sym 'cls ['hook ['num1 ['num2]]]) -> num
- Generates a key for a database tree. If a minimal key
num1
and/or a maximal key num2
is given, the next free number in that
range is returned. Otherwise, the current maximal key plus one is returned. See
also useKey
, genStrKey
and maxKey
.
: (maxKey (tree 'nr '+Item))
-> 8
: (genKey 'nr '+Item)
-> 9
(genStrKey 'sym 'sym 'cls ['hook]) -> sym
- Generates a unique string for a database tree, by prepending as many "# "
sequences as necessary. See also
genKey
.
: (genStrKey "ben" 'nm '+User)
-> "# ben"
(get 'sym1|lst ['sym2|cnt ..]) -> any
- Fetches a value
any
from the properties of a symbol, or from a
list. From the first argument sym1|lst
, values are retrieved in
successive steps by either extracting the value (if the next argument is zero)
or a property from a symbol, the CDR of an asoq
ed element (if the next argument is a
symbol), the n'th element (if the next argument is a positive number) or the
n'th CDR (if the next argument is a negative number) from a list. See also
put
, ;
, :
and
nth
.
: (put 'X 'a 1)
-> 1
: (get 'X 'a)
-> 1
: (put 'Y 'link 'X)
-> X
: (get 'Y 'link)
-> X
: (get 'Y 'link 'a)
-> 1
: (get '((a (b . 1) (c . 2)) (d (e . 3) (f . 4))) 'a 'b)
-> 1
: (get '((a (b . 1) (c . 2)) (d (e . 3) (f . 4))) 'd 'f)
-> 4
: (get '(X Y Z) 2)
-> Y
: (get '(X Y Z) 2 'link 'a)
-> 1
(getd 'any) -> fun | NIL
- Returns
fun
if any
is a symbol that has a function
definition, otherwise NIL
. See also fun?
.
: (getd '+)
-> 67327232
: (getd 'script)
-> ((File . @) (load File))
: (getd 1)
-> NIL
: ht:Fmt # Initially undefined
-> NIL
: (getd 'ht:Fmt) # Check shared library
-> 8790207171188
: ht:Fmt # Now defined
-> 8790207171188
(getl 'sym1|lst1 ['sym2|cnt ..]) -> lst
- Fetches the complete property list
lst
from a symbol. That
symbol is sym1
(if no other arguments are given), or a symbol found
by applying the get
algorithm to
sym1|lst1
and the following arguments. See also putl
and maps
.
: (put 'X 'a 1)
-> 1
: (put 'X 'b 2)
-> 2
: (put 'X 'flg T)
-> T
: (getl 'X)
-> (flg (2 . b) (1 . a))
(glue 'any 'lst) -> sym
- Builds a new transient symbol (string) by
pack
ing the any
argument between
the individual elements of lst
. See also text
.
: (glue "," '(a b c d))
-> "a,b,c,d"
(goal '([pat 'any ..] . lst) ['sym 'any ..]) -> lst
- Constructs a Pilog query list from the list of
clauses
lst
. The head of the argument list may consist of a
sequence of pattern symbols (Pilog variables) and expressions, which are used
together with the optional sym
and any
arguments to
form an initial environment. See also prove
and fail
.
: (goal '((likes John @X)))
-> (((1 (0) NIL ((likes John @X)) NIL T)))
: (goal '(@X 'John (likes @X @Y)))
-> (((1 (0) NIL ((likes @X @Y)) NIL ((0 . @X) 1 . John) T)))
(group 'lst) -> lst
- Builds a list of lists, by grouping all elements of
lst
with
the same CAR into a common sublist. See also Comparing, by
, sort
and uniq
.
: (group '((1 . a) (1 . b) (1 . c) (2 . d) (2 . e) (2 . f)))
-> ((1 a b c) (2 d e f))
: (by name group '("x" "x" "y" "z" "x" "z"))
-> (("x" "x" "x") ("y") ("z" "z"))
: (by length group '(123 (1 2) "abcd" "xyz" (1 2 3 4) "XY"))
-> ((123 "xyz") ((1 2) "XY") ("abcd" (1 2 3 4))
(gt0 'any) -> num | NIL
- Returns
num
when the argument is a number and greater than
zero, otherwise NIL
. See also lt0
, le0
, ge0
, =0
and n0
.
: (gt0 -2)
-> NIL
: (gt0 3)
-> 3