문제
내가 사용하여 DrScheme 를 통해 작업 SICP,그리고 나는 것으로 나타났는 특정 절차(예를 들어, square
)에 사용됩니다.나는 이러한 별도의 파일에할 수 있도록 그들을 포함에 다른 프로그램을 다시 작성하지 않고 그들에게 모든 시간을,그러나 나는 수 없는 것 그 밖으로 수행하는 방법이다.
해봤:
(load filename)
(load (filename))
(load ~/path-to-directory/filename)
(require filename)
(require ~/path-to-directory/filename)
(require path-from-root/filename)
이러한 작동합니다.분명히 나에서 파악 빨--어떤 도움이 많이 감사합니다.
해결책
그것은 명확하지 않에서 당신의 질문에 어떤 언어 수준은 당신을 사용하여;기존의 특정 언어도 특정 메커니즘을 사용할 수 없습니다.
최 포함이/추상화 메커니즘은 모듈이 있습니다.
첫째,설정의 언어 수준은"모듈".그런 다음,가 있는 경우 이러한 두 개의 파일을 같은 디렉토리
파일에 사용됩니다.ss:
#lang scheme
(require "square.ss")
(define (super-duper x) (square (square x)))
파일 광장입니다.ss:
#lang scheme
(provide square)
(define (square x) (* x x))
다음할 수 있죠"run"에서"사용됩니다.ss"버퍼의 모든 것을 일 방법을 간편하게 사용할 수 있습니다.
주의:검증되지 않은 코드입니다.
다른 팁
내가 믿는 당신이 찾고있:
(include "relative/path/to/scheme/file.scm")
의(필수)식 적재를 위한 모듈을 사용합니다.
에 MIT/GNU Scheme,로드할 수 있는 파일과 같은 것이:
(load "c:\\sample-directory\\sample-file.scm")
하지만 난 그것을 작동하는 경우에 DrScheme.
(require "~/path-to-directory/filename")
제휴하지 않습니다 StackOverflow