+Joint
- Class for bidirectional object relations, a subclass of
+Link
. Expects a (symbolic) attribute, a list
of classes as type
of the referred
database object (of class +Entity
),
and two optional functions called when 'put'ting and/or 'get'ting a value. A
+Joint
corresponds to two +Link
s, where the attribute
argument is the relation of the back-link in the referred object. See also Database.
(class +Ord +Entity) # Order class
(rel pos (+List +Joint) ord (+Pos)) # List of positions in that order
...
(class +Pos +Entity) # Position class
(rel ord (+Joint) pos (+Ord)) # Back-link to the parent order
(job 'lst . prg) -> any
- Executes a job within its own environment (as specified by symbol-value
pairs in
lst
). The current values of all symbols are saved, the
symbols are bound to the values in lst
, prg
is
executed, then the (possibly modified) symbol values are (destructively) stored
in the environment list, and the symbols are restored to their original values.
The return value is the result of prg
. Typically used in curried
functions and *Run
tasks. See also env
, bind
, let
, use
and state
.
: (de tst ()
(job '((A . 0) (B . 0))
(println (inc 'A) (inc 'B 2)) ) )
-> tst
: (tst)
1 2
-> 2
: (tst)
2 4
-> 4
: (tst)
3 6
-> 6
: (pp 'tst)
(de tst NIL
(job '((A . 3) (B . 6))
(println (inc 'A) (inc 'B 2)) ) )
-> tst
(journal ['T] 'any ..) -> T
- Reads journal data from the files with the names
any
, and
writes all changes to the database. If the first argument is T
, the
replication journal and transaction logs are disabled. See also pool
.
: (journal "db.log")
-> T