About a minute ago, Jukka Tuominen wrote: > > > The sandbox is working in an isolated world (by design, of > > course), so you need to do the (require "sb-functions.rkt") inside > > the sandbox. For example, just use (sb-eval '(require ...)). > > Wouldn't that mean that the sb-evaluator has to be first initiated > to understand 'require' plus many other primitives, not just the > intented f1, f2, f3?
Yes. > Is this even possible? Yes. You can get that with (make-evaluator 'racket/base) If you want a limited language, then you can make up a language with `require' and the limited set of bindings you want in. If you also don't want `require' in the language, you can make the language itself provide the functions that you want to make public, but not `require' itself. Yet another option is to use `call-in-sandbox-context' with `namespace-require'. (All of this is much more complicated then what Matthias originally hinted at: if you know the set of functions that you want to expose, then you can just dispatch on the input symbols and call the corresponding function.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users