Including an external file in racket

D R picture D R · Jan 26, 2011 · Viewed 8.1k times · Source

I would like to include all the functions defined in a given racket file so that I get the same effect as if they were copied. Is it possible to do that?

Answer

Yasir Arsanukaev picture Yasir Arsanukaev · Jan 27, 2011

To export the functions out of a module, you use provide, consider a file "foo.rkt":

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

The file "bar.rkt" now can import definitions from "foo.rkt":

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

The other way you could allow other files to have access to everything that’s defined in the file, is using (all-defined-out):

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

Hope that helps.