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>)
-callcc
call/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.