2009-07-30 3 views
3

저는 DrScheme을 사용하여 SICP를 사용하고 있으며, 특정 절차 (예 : square)가 반복적으로 사용되는 것으로 나타났습니다. 이 파일들을 별도의 파일에 넣어서 매번 다시 작성하지 않고 다른 프로그램에 포함시킬 수는 있지만이 작업을 수행하는 방법을 알아낼 수는 없습니다.DrScheme에 파일을 어떻게 포함합니까?

이 나는 ​​시도했다 :이 작품의

(load filename) 
(load (filename)) 
(load ~/path-to-directory/filename) 
(require filename) 
(require ~/path-to-directory/filename) 
(require path-from-root/filename) 

없음. 분명히 나는 ​​빨대를 쥐고있다. 어떤 도움이라도 대단히 감사한다.

답변

4

어떤 언어 수준을 사용하고 있는지 분명하지 않습니다. 특정 레거시 언어로 인해 특정 메커니즘을 사용할 수 없게 될 수 있습니다.

최상의 포함/추상화 메커니즘은 모듈의 포함/추상화 메커니즘입니다.

먼저 언어 수준을 "모듈"로 설정하십시오. 나는이 같은 디렉토리에이 두 파일이있는 경우 그런 :

파일 사용-square.ss :

#lang scheme 

(require "square.ss") 

(define (super-duper x) (square (square x))) 

파일 square.ss :

#lang scheme 

(provide square) 

(define (square x) (* x x)) 

가 그럼 난 "실행"을 칠 수있다 "uses-square.ss"버퍼에 저장하면 모든 것이 예상대로 작동합니다.

경고 : 테스트되지 않은 코드.

4

난 당신이 찾고있는 생각 :

 
(include "relative/path/to/scheme/file.scm") 

(필요) 표현로드 모듈입니다.

+0

은 Gambit 스키마에서 작동합니다. –

1

는 MIT/GNU 계획에서는 다음과 같이 사용하여 파일을로드 할 수

(load "c:\\sample-directory\\sample-file.scm") 

하지만 DrScheme에서 작동하는지 모르겠어요.

+0

언어가 SIPC로 설정된 경우 DrScheme에서 작동하며 SICP 추가 기능을 사용하면 – dan

+0

이 Gambit 스키마에서 작동합니다. –

1
(require "~/path-to-directory/filename") 
관련 문제