2011-01-26 17 views

Respuesta

12

Puede utilizar include de la siguiente manera:

Crear un archivo llamado "foo.rkt" que tiene este aspecto:

(define x 1) 
(define y 2) 

Luego, en otro archivo:

#lang racket 
(require racket/include) 
(include "foo.rkt") 
(+ x y) 

Debería ver el resultado 3 .

Puede ver la documentación para include también.

+0

Sam, lea [etiquetado de preguntas sobre el lenguaje de raqueta: etiquetas "plt-scheme" y "racket"] (http://meta.stackexchange.com/q/74042/147036). –

+0

Lamentablemente, no tengo suficientes representantes para votar por los sinónimos. –

+0

Perdón por despertar un hilo antiguo, pero ¿por qué no hay #lang racket en foo.rkt? – Manbroski

12

Para exportar las funciones de un módulo, se utiliza provide, considere un archivo "foo.rkt":

#lang racket 
(define fortytwo 42) 
(define (det a b c) 
    (- (* b b) (* 4 a c))) 
(provide (fortytwo det)) 

El archivo "bar.rkt" pueden ahora importar las definiciones de "foo.rkt":

#lang racket 
(require "foo.rkt") 
(define (baz a b c) 
    (+ (det a b c) (- c 4))) 

La otra forma en que podría permitir que otros archivos tengan acceso a todo lo que está definido en el archivo, está usando (all-defined-out):

#lang racket 
(define fortytwo 42) 
(define (det a b c) 
    (- (* b b) (* 4 a c))) 
(provide (all-defined-out)) 

Espero que ayude.

+1

Tenga en cuenta también que hay 'include', lo que podría ser lo que la pregunta era originalmente acerca. –

+0

de alguna manera incluir no funcionó en mi caso, pero su solución hizo el trabajo. – dKab

+0

Creo que la sintaxis correcta para exportar esas dos funciones cuarenta y dos y det es '(proporcione cuarenta y dos det)'. –

0

Usted podría utilizar la carga

(load "assert.scm") 
Cuestiones relacionadas