mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 23:00:22 +02:00
* scheme-modules.texi: Document '@' and '@@'.
* scripts.texi: Mention that "-e (@ ...)" also works.
This commit is contained in:
parent
473687d130
commit
da769b1937
2 changed files with 42 additions and 0 deletions
|
@ -254,6 +254,32 @@ close-pipe unixy:close-pipe
|
||||||
This example also shows how to use the convenience procedure
|
This example also shows how to use the convenience procedure
|
||||||
@code{symbol-prefix-proc}.
|
@code{symbol-prefix-proc}.
|
||||||
|
|
||||||
|
You can also directly refer to bindings in a module by using the
|
||||||
|
@code{@@} syntax. For example, instead of using the
|
||||||
|
@code{use-modules} statement from above and writing
|
||||||
|
@code{unixy:pipe-open} to refer to the @code{pipe-open} from the
|
||||||
|
@code{(ice-9 popen)}, you could also write @code{(@@ (ice-9 popen)
|
||||||
|
open-pipe)}. Thus an alternative to the complete @code{use-modules}
|
||||||
|
statement would be
|
||||||
|
|
||||||
|
@smalllisp
|
||||||
|
(define unixy:pipe-open (@@ (ice-9 popen) open-pipe))
|
||||||
|
(define unixy:close-pipe (@@ (ice-9 popen) close-pipe))
|
||||||
|
@end smalllisp
|
||||||
|
|
||||||
|
There is also @code{@@@@}, which can be used like @code{@@}, but does
|
||||||
|
not check whether the variable that is being accessed is actually
|
||||||
|
exported. Thus, @code{@@@@} can be thought of as the impolite version
|
||||||
|
of @code{@@} and should only be used as a last resort or for
|
||||||
|
debugging, for example.
|
||||||
|
|
||||||
|
Note that just as with a @code{use-modules} statement, any module that
|
||||||
|
has not yet been loaded yet will be loaded when referenced by a
|
||||||
|
@code{@@} or @code{@@@@} form.
|
||||||
|
|
||||||
|
You can also use the @code{@@} and @code{@@@@} syntaxes as the target
|
||||||
|
of a @code{set!} when the binding refers to a variable.
|
||||||
|
|
||||||
@c begin (scm-doc-string "boot-9.scm" "symbol-prefix-proc")
|
@c begin (scm-doc-string "boot-9.scm" "symbol-prefix-proc")
|
||||||
@deffn {Scheme Procedure} symbol-prefix-proc prefix-sym
|
@deffn {Scheme Procedure} symbol-prefix-proc prefix-sym
|
||||||
Return a procedure that prefixes its arg (a symbol) with
|
Return a procedure that prefixes its arg (a symbol) with
|
||||||
|
@ -302,6 +328,17 @@ transformer as the system transformer for the currently defined module,
|
||||||
as well as installing it as the current system transformer.
|
as well as installing it as the current system transformer.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@deffn syntax @@ module-name binding-name
|
||||||
|
Refer to the binding named @var{binding-name} in module
|
||||||
|
@var{module-name}. The binding must have been exported by the module.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn syntax @@@@ module-name binding-name
|
||||||
|
Refer to the binding named @var{binding-name} in module
|
||||||
|
@var{module-name}. The binding must not have been exported by the
|
||||||
|
module. This syntax is only intended for debugging purposes or as a
|
||||||
|
last resort.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
@node Creating Guile Modules
|
@node Creating Guile Modules
|
||||||
@subsection Creating Guile Modules
|
@subsection Creating Guile Modules
|
||||||
|
|
|
@ -60,6 +60,11 @@ always invokes the @var{function} as the @emph{last} action it performs.
|
||||||
This is weird, but because of the way script invocation works under
|
This is weird, but because of the way script invocation works under
|
||||||
POSIX, the @code{-s} option must always come last in the list.
|
POSIX, the @code{-s} option must always come last in the list.
|
||||||
|
|
||||||
|
The @var{function} is most often a simple symbol that names a function
|
||||||
|
that is defined in the script. It can also be of the form @code{(@@
|
||||||
|
@var{module-name} @var{symbol}} and in that case, the symbol is
|
||||||
|
looked up in the module named @var{module-name}.
|
||||||
|
|
||||||
@xref{Scripting Examples}.
|
@xref{Scripting Examples}.
|
||||||
|
|
||||||
@item -ds
|
@item -ds
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue