Como faço para incluir arquivos em DrScheme?
Pergunta
Eu estou usando DrScheme de trabalho através SICP, e tenho notado que determinados procedimentos (por exemplo, square
) se acostumar mais e mais. Eu gostaria de colocá-las em um arquivo separado para que eu possa incluí-los em outros programas sem ter que reescrevê-los o tempo todo, mas eu não consigo descobrir como fazer isso.
Eu tentei:
(load filename)
(load (filename))
(load ~/path-to-directory/filename)
(require filename)
(require ~/path-to-directory/filename)
(require path-from-root/filename)
Nenhuma dessas obras. Obviamente eu estou agarrando em palhas -. Qualquer ajuda é muito apreciada
Solução
Não é claro da sua pergunta o nível de linguagem que você está usando; certas línguas legados podem fazer determinados mecanismos indisponíveis.
O melhor mecanismo de inclusão / abstração é a de módulos.
Em primeiro lugar, definir o seu nível de linguagem de "módulo". Então, se eu tiver esses dois arquivos no mesmo diretório:
usos-square.ss arquivo:
#lang scheme
(require "square.ss")
(define (super-duper x) (square (square x)))
square.ss arquivo:
#lang scheme
(provide square)
(define (square x) (* x x))
Então eu posso bater "correr" sobre os "usos-square.ss" tampão e tudo vai funcionar da maneira que você esperaria.
Advertência:. Código não testado
Outras dicas
Eu acredito que você está procurando:
(include "relative/path/to/scheme/file.scm")
A expressão (exigem) é para os módulos de carga.
No MIT / Esquema GNU, você pode carregar um arquivo com algo como isto:
(load "c:\\sample-directory\\sample-file.scm")
Mas eu não sei se ele funciona em DrScheme.
(require "~/path-to-directory/filename")