Чтобы экспортировать функции из модуля, вы используете 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))
Надеюсь, что это поможет.