我想包含给定球拍文件中定义的所有函数,以便获得与复制时相同的效果。有可能吗?
答案 0 :(得分:17)
要从模块导出功能,请使用provide
,考虑文件"foo.rkt"
:
#lang racket
(define fortytwo 42)
(define (det a b c)
(- (* b b) (* 4 a c)))
(provide (fortytwo det))
文件"bar.rkt"
现在可以从"foo.rkt"
导入定义:
#lang racket
(require "foo.rkt")
(define (baz a b c)
(+ (det a b c) (- c 4)))
允许其他文件访问文件中定义的所有内容的另一种方法是使用(all-defined-out)
:
#lang racket
(define fortytwo 42)
(define (det a b c)
(- (* b b) (* 4 a c)))
(provide (all-defined-out))
希望有所帮助。
答案 1 :(得分:13)
您可以按如下方式使用include
:
创建一个名为"foo.rkt"
的文件,如下所示:
(define x 1)
(define y 2)
然后在另一个文件中:
#lang racket
(require racket/include)
(include "foo.rkt")
(+ x y)
您应该看到结果3
。
您也可以查看include
的文档。
答案 2 :(得分:0)
您可以使用加载
(load "assert.scm")