I’m using DrScheme to work through SICP, and I’ve noticed that certain procedures (for example, square) get used over and over. I’d like to put these in a separate file so that I can include them in other programs without having to rewrite them every time, but I can’t seem to figure out how to do this.
I’ve tried:
(load filename)
(load (filename))
(load ~/path-to-directory/filename)
(require filename)
(require ~/path-to-directory/filename)
(require path-from-root/filename)
None of these works. Obviously I’m grasping at straws — any help is much appreciated.
It’s not clear from your question what language level you’re using; certain legacy languages may make certain mechanisms unavailable.
The best inclusion/abstraction mechanism is that of modules.
First, set your language level to “module”. Then, if I have these two files in the same directory:
File uses-square.ss:
File square.ss :
Then I can hit “run” on the “uses-square.ss” buffer and everything will work the way you’d expect.
Caveat: untested code.