On this page:
=?
<?
>?
<=?
>=?
1+
1-
gentmp
flush-output-port
real-time
atom?
define-structure
getprop
putprop
new-cafe

 (require mzlib/compat)

The mzlib/compat library defines a number of procedures and syntactic forms that are commonly provided by other Scheme implementations. Most of the procedures are aliases for mzscheme procedures.

(=? n ...+)  boolean?
  n : number?
(<? n ...+)  boolean?
  n : real?
(>? n ...+)  boolean?
  n : real?
(<=? n ...+)  boolean?
  n : real?
(>=? n ...+)  boolean?
  n : real?
Same as =, <, etc.

(1+ n)  number?
  n : number?
(1- n)  number?
  n : number?
Same as add1 and sub1.

(gentmp [base])  symbol?
  base : (or/c string? symbol?) = "g"
Same as gensym.

Same as flush-output.

(atom? v)  any
  v : any/c
Same as (not (pair? v)) (which does not actually imply an atomic value).

(define-structure (name-id field-id ...))
(define-structure (name-id field-id ...)
                  ((init-field-id init-expr) ...))
Like define-struct, except that the name-id is moved inside the parenthesis for fields. In addition, init-field-ids can be specified with automatic initial-value expression.

The init-field-ids do not have corresponding arguments for the make-name-id constructor. Instead, each init-field-id’s init-expr is evaluated to obtain the field’s value when the constructor is called. The field-ids are bound in init-exprs, but not other init-field-ids.

Examples:

  > (define-structure (add left right) ([sum (+ left right)]))
  > (add-sum (make-add 3 6))

  9

(getprop sym property [default])  any/c
  sym : symbol?
  property : symbol?
  default : any/c = #f
(putprop sym property value)  void?
  sym : symbol?
  property : symbol?
  value : any/c
The getprop function gets a property value associated with sym. The property argument names the property to be found. If the property is not found, default is returned.

The properties obtained with getprop are the ones installed with putprop.

(new-cafe [eval-handler])  any
  eval-handler : (any/c . -> . any) = #f
Emulates Chez Scheme’s new-cafe by installing eval-handler into the current-eval parameter while running read-eval-print. In addition, current-exit is set to escape from the call to new-cafe.