¿Cómo incluyo archivos en DrScheme?
Pregunta
Estoy usando DrScheme para trabajar a través del SICP, y he notado que ciertos procedimientos (por ejemplo, square
) se usan una y otra vez. Me gustaría colocarlos en un archivo separado para poder incluirlos en otros programas sin tener que volver a escribirlos cada vez, pero parece que no puedo encontrar la forma de hacerlo.
Lo he intentado:
(load filename)
(load (filename))
(load ~/path-to-directory/filename)
(require filename)
(require ~/path-to-directory/filename)
(require path-from-root/filename)
Ninguna de estas obras. Obviamente me estoy agarrando a los popotes, cualquier ayuda es muy apreciada.
Solución
De su pregunta no queda claro qué nivel de idioma está utilizando; ciertos lenguajes heredados pueden hacer que ciertos mecanismos no estén disponibles.
El mejor mecanismo de inclusión / abstracción es el de los módulos.
Primero, establezca su nivel de idioma en " módulo " ;. Luego, si tengo estos dos archivos en el mismo directorio:
Usos del archivo-square.ss:
#lang scheme
(require "square.ss")
(define (super-duper x) (square (square x)))
Archivo square.ss:
#lang scheme
(provide square)
(define (square x) (* x x))
Entonces puedo presionar " ejecutar " en el " usos-cuadrados.ss " búfer y todo funcionará de la manera que esperas.
Advertencia: código no probado
Otros consejos
Creo que estás buscando:
(include "relative/path/to/scheme/file.scm")
La expresión (requerida) es para cargar módulos.
En el Esquema MIT / GNU, puedes cargar un archivo con algo como esto:
(load "c:\\sample-directory\\sample-file.scm")
Pero no sé si funciona en DrScheme.
(require "~/path-to-directory/filename")