Next: iklib syntaxes blocking, Previous: iklib syntaxes loops, Up: iklib syntaxes [Index]
The standardised Scheme languages do not define the common return
keyword present in many languages, like C and Python. Despite this, it
is quite easy to obtain the “early return” functionality through the
use of continuations:
(call/cc
(lambda (return)
(display 'before)
(return 1)
(display 'never)))
-| before
⇒ 1
Many programmers are used to the return keyword, so
Vicare includes some syntaxes to support it. The use of all
these syntaxes involves the creation of a continuation, which is a
performance penalty.
This syntax is meant to be used to return from some enclosing block, returning the given optional arguments. Being a fluid syntax: it is possible to rebind this keyword in custom syntaxes.
Like begin, but allow the use of the keyword return to
return values to the enclosing continuation.
(returnable (display 'before) (return) (display 'never)) -| before (returnable (display 'before) (return 1) (display 'never)) -| before ⇒ 1 (returnable (display 'before) (return 1 2) (display 'never)) -| before ⇒ 1 2