Including an external file in racket

喜你入骨 提交于 2019-12-17 19:57:58

问题


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?


回答1:


You can use include as follows:

Create a file called "foo.rkt" that looks like this:

(define x 1)
(define y 2)

Then in another file:

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

You should see the result 3.

You can see the documentation for include as well.




回答2:


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.




回答3:


You could use load

(load "assert.scm")


来源:https://stackoverflow.com/questions/4809433/including-an-external-file-in-racket

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!