我正在使用DrScheme來處理SICP,並且我注意到某些程序(例如square
)得到反覆使用。我想把它們放在一個單獨的文件中,這樣我就可以將它們包含在其他程序中,而不必每次重寫它們,但我似乎無法弄清楚如何做到這一點。如何在DrScheme中包含文件?
我已經試過:
這些作品都沒有。顯然我在抓秸稈 - 任何幫助都非常感謝。
我正在使用DrScheme來處理SICP,並且我注意到某些程序(例如square
)得到反覆使用。我想把它們放在一個單獨的文件中,這樣我就可以將它們包含在其他程序中,而不必每次重寫它們,但我似乎無法弄清楚如何做到這一點。如何在DrScheme中包含文件?
我已經試過:
這些作品都沒有。顯然我在抓秸稈 - 任何幫助都非常感謝。
從您的問題中不清楚您使用的語言級別;某些遺留語言可能會使某些機制不可用。
最好的包含/抽象機制是模塊。
首先,將您的語言級別設置爲「模塊」。然後,如果我在同一個目錄下的這兩個文件:
文件使用-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」緩衝區中,一切都將按照您期望的方式工作。
警告:未經測試的代碼。
我相信你正在尋找:
(include "relative/path/to/scheme/file.scm")
的(要求)的表達是加載模塊。
在MIT/GNU計劃,你可以加載一個文件是這樣的:
(load "c:\\sample-directory\\sample-file.scm")
但我不知道,如果它在DrScheme。
它在DrScheme中工作,如果語言設置爲SIPC,則使用SICP加載項 – dan 2010-01-26 21:59:46
(require "~/path-to-directory/filename")
在Gambit計劃中工作至少 – 2015-11-01 18:57:27