for R5RS Compatibilities < List of Argument-Commands < [click go-back button to go-back] < Viivi's Cell < Entrance
Viivi was originally designed to be strictly compliant to R5RS.
However, it is possible to customize Viivi,
using the argument-commands listed here together with the procedure
viivi-set!
and the setting-panels in the Viivi IDE,
at each item to behave strictly compliant to R5RS
or to behave in the conventional manner.
-C <MODE>C'
is an acronym for "Continuation".<MODE>
is an integer value representing
the number of the argument accepted by the continuation-calls:
0 continuation calls accept no arguments only
1 continuation calls accept one argument only (default, R5RS-compatible)
2 continuation calls accept no arguments or one argument
[Example]
$ viivi -K -C 0
Specify to call continuations without arguments.[Equivalence]
・procedure-call: (viivi-set! continuation-argument-number-mode <MODE>)-callcccall/cc,
which is conventionally used,
to the predefined procedure
#<procedure:call-with-current-continuation>
of R5RS at the top-level.[Equivalence]
・procedure-call: (define call/cc call-with-current-continuation)
at the top-levelcall/cc"
-E <BITSET>E'
is an acronym for "Evaluation".#<procedure:eval>.<BITSET>
represents the number of the argument accepted by
#<procedure:eval>
calls
and takes a bit-set value composed with 1 and 2,
where 0 is prohibited. 1 #<procedure:eval> calls accept one argument only (default)
2 #<procedure:eval> calls accept two arguments only (R5RS-compatible)
3 #<procedure:eval> calls accept one or two arguments
[Example]
$ viivi -K -E 2
Specify to call
#<procedure:eval>
only with two arguments, as regulated in R5RS.[Equivalence]
・procedure-call: (viivi-set! eval-argument-number-bitset <BITSET>)-q <MODE>q'
is an acronym for "eq?".#<procedure:eq?>
compares the data of numbers or characters,
their memory-addresses are used by default following to R5RS.<MODE>
is an integer value (from 0 to 3) representing the comparing style:
0 #<procedure:eq?> compares the memory addresses for both numbers and characters
(default, R5RS compatible)
1 #<procedure:eq?> compares the values only for numbers
2 #<procedure:eq?> compares the values only for characters
3 #<procedure:eq?> compares the values for both numbers and characters
[Example]
$ viivi -q 1
Only when #<procedure:eq?> compares numbers,
their values are used.[Equivalence]
・procedure-call: (viivi-set! eq?-comparison-mode <MODE>)-R <MODE>R'
is an acronym for "Return".#<procedure:define>
and
#<procedure:set!>. 0 the calls of both binding procedures return #<unspecified>
(default, R5RS compatible)
1 only the #<procedure:define> calls return the newly bound values
2 only the #<procedure:set!> calls return the newly bound values
3 the calls of both binding procedures return the newly bound values
[Example]
$ viivi -R 2
The #<procedure:define> calls return
#<unspecified>,
while the #<procedure:set!> calls return the newly bound values.[Equivalence]
・procedure-call: (viivi-set! binding-return-value-mode <MODE>)-RL <MODE>RL"
is an abbreviation for "Return values from Load calls".#<procedure:load>
calls.#<procedure:load>
calls. 0 the #<procedure:load> calls return #<unspecified>
(default, R5RS)
1 the #<procedure:load> calls return the last evaluation values
in the #<procedure:load> calls, respectively
[Example]
$ viivi -RL 1
The #<procedure:load>
calls return the last evaluation values in the
#<procedure:load>
calls, respectively.[Equivalence]
・procedure-call: (viivi-set! load-return-value-mode <MODE>)for R5RS Compatibilities < List of Argument-Commands < [click go-back button to go-back] < Viivi's Cell < Entrance
Exhibited on 2022/03/02
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.