10 mzlib/compat

▼ |  | Mz Lib: Legacy Libraries

1 | mzlib/ a-signature
2 | mzlib/ a-unit
3 | mzlib/ async-channel
4 | mzlib/ awk
5 | mzlib/ class
6 | mzlib/ cm
7 | mzlib/ cm-accomplice
8 | mzlib/ cmdline
9 | mzlib/ cml
10 | mzlib/ compat
11 | mzlib/ compile
12 | mzlib/ contract
13 | mzlib/ control
14 | mzlib/ date
15 | mzlib/ deflate
16 | mzlib/ defmacro
17 | mzlib/ etc
18 | mzlib/ file
19 | mzlib/ for
20 | mzlib/ foreign
21 | mzlib/ include
22 | mzlib/ inflate
23 | mzlib/ integer-set
24 | mzlib/ kw
25 | mzlib/ list
26 | mzlib/ match
27 | mzlib/ math
28 | mzlib/ md5
29 | mzlib/ os
30 | mzlib/ pconvert
31 | mzlib/ pconvert-prop
32 | mzlib/ plt-match
33 | mzlib/ port
34 | mzlib/ pregexp
35 | mzlib/ pretty
36 | mzlib/ process
37 | mzlib/ restart
38 | mzlib/ runtime-path
39 | mzlib/ sandbox
40 | mzlib/ sendevent
41 | mzlib/ serialize
42 | mzlib/ shared
43 | mzlib/ string
44 | mzlib/ struct
45 | mzlib/ stxparam
46 | mzlib/ surrogate
47 | mzlib/ tar
48 | mzlib/ thread
49 | mzlib/ trace
50 | mzlib/ traceld
51 | mzlib/ trait
52 | mzlib/ transcr
53 | mzlib/ unit
54 | mzlib/ unit-exptime
55 | mzlib/ unit200
56 | mzlib/ unitsig200
57 | mzlib/ zip
| Bibliography
| Index

On this page:

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

top contents ← prev up next →

(require mzlib/compat) | package: compatibility-lib

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.

> procedure (=? n ...+) → boolean?
> n : number?
> procedure (<? n ...+) → boolean?
> n : real?
> procedure (>? n ...+) → boolean?
> n : real?
> procedure (<=? n ...+) → boolean?
> n : real?
> procedure (>=? n ...+) → boolean?
> n : real?

Same as =, <, etc.

> procedure (1+ n) → number?
> n : number?
> procedure (1- n) → number?
> n : number?

Same as add1 and sub1.

> procedure (gentmp [base]) → symbol?
> base : (or/c string? symbol?) = "g"

Same as gensym.

> procedure (flush-output-port [o]) → void?
> o : output-port? = (current-output-port)

Same as flush-output.

> procedure (real-time) → exact-integer?

Same as current-milliseconds.

> procedure (atom? v) → any
> v : any/c

Same as (not (pair? v)) (which does not actually imply an atomic value).

> syntax (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

> procedure (getprop sym property [default]) → any/c
> sym : symbol?
> property : symbol?
> default : any/c = #f
> procedure (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.

> procedure (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.
top contents ← prev up next →