1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #! /usr/local/bin/guile -s
- !#
- ;;; examples/modules/main -- Module system demo.
- ;;; Commentary:
- ;;; The main demo program for the modules subdirectory.
- ;;;
- ;;; This program shows how all the new fancy module import features
- ;;; are to be used.
- ;;; Author: Martin Grabmueller
- ;;; Date: 2001-05-29
- ;;; Code:
- (define-module (main)
- ;; The module 0 is imported completely.
- ;;
- :use-module (module-0)
- ;; Module 1 is imported completely, too, but the procedure names are
- ;; prefixed with the module name.
- ;;
- :use-module ((module-1) :renamer (symbol-prefix-proc 'module-1:))
- ;; From module 2, only the procedure `braz' is imported, so that the
- ;; procedures `foo' and `bar' also exported by that module don't
- ;; clash with the definitions of module 0.
- ;;
- :use-module ((module-2) :select (braz))
-
- ;; Import the bindings from module 2 again, now renaming them by
- ;; explicitly mentioning the original and new names.
- ;;
- :use-module ((module-2) :select ((braz . m-2:braz) (foo . m-2:foo))))
- ;;
- ;; Now call the various imported procedures.
- ;;
- (foo)
- (bar)
- (module-1:foo)
- (module-1:bar)
- (braz)
- (m-2:braz)
- (m-2:foo)
- ;; Local variables:
- ;; mode: scheme
- ;; End:
|