Подтвердить что ты не робот

Включение внешнего файла в ракетку

Я хотел бы включить все функции, определенные в данном файле ракетки, чтобы я получал такой же эффект, как если бы они были скопированы. Возможно ли это сделать?

4b9b3361

Ответ 1

Вы можете использовать include следующим образом:

Создайте файл с именем "foo.rkt", который выглядит так:

(define x 1)
(define y 2)

Затем в другом файле:

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

Вы должны увидеть результат 3.

Вы можете увидеть документацию для include.

Ответ 2

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

Надеюсь, что это поможет.

Ответ 3

Вы можете использовать load

(load "assert.scm")