Jose A. Ortega Ruiz wrote:

in PLT, one can get hold of the value associated with an identifier
exported by a module without statically requiring it, using a procedure
called `dynamic-require'. for instance, if i have

  (module geiser scheme (export foo) ---)

calling

  (dynamic-require ''geiser 'foo)

from anywhere returns the value of `foo, so, if it's a procedure, one
can call it without requiring the `geiser' module:

  ((dynamic-require ''geiser 'foo) arg)

guile has an equivalent form, dubbed @... is there a similar mechanism
in ikarus?

Hey Jao!

Ikarus allows local/internal imports.

Ikarus Scheme version 0.0.4-rc1+ (revision 1851, build 2009-08-27)
Copyright (c) 2006-2009 Abdulaziz Ghuloum

> iota
Unhandled exception
 Condition components:
   1. &undefined
   2. &who: eval
   3. &message: "unbound variable"
   4. &irritants: (iota)

Let's import it inside a 'let':

> (let ()

    (import (srfi :1))

    iota)
#<procedure iota [char 14435 of /scheme/srfi/%3a1/lists.sls]>

And it's still not visible at the top level:

> iota
Unhandled exception
 Condition components:
   1. &undefined
   2. &who: eval
   3. &message: "unbound variable"
   4. &irritants: (iota)
>

Does that help?

Ed

Reply via email to