Frage

Ich verwende DrScheme durch SICP zu arbeiten, und ich habe festgestellt, dass bestimmte Verfahren (zum Beispiel square) immer und immer wieder gewöhnen. Ich mag diese in einer separaten Datei setzen, so dass ich sie in anderen Programmen ohne umfassen kann sie jedes Mal neu zu schreiben, aber ich kann nicht scheinen, um herauszufinden, wie dies zu tun.

Ich habe versucht:

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

Keines dieser Werke. Offensichtlich bin ich dem Strohhalm greifen -. Jede Hilfe ist sehr geschätzt

War es hilfreich?

Lösung

Es ist nicht klar, aus Ihrer Frage, welche Sprache Niveau Sie verwenden; bestimmte ältere Sprachen können bestimmte Mechanismen nicht verfügbar machen.

Der beste Aufnahme / Abstraktion Mechanismus ist, dass von Modulen.

Zuerst stellen Sie Ihre Sprachkenntnisse auf „Modul“. Dann, wenn ich diese beiden Dateien im selben Verzeichnis:

Datei verwendet-square.ss:

#lang scheme

(require "square.ss")

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

Datei square.ss:

#lang scheme

(provide square)

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

Dann kann ich Hit „Run“ auf dem „verwendet-square.ss“ Puffer und alles wird so funktionieren, man erwarten würde.

Caveat. Ungetesteten Code

Andere Tipps

Ich glaube, Sie suchen:

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

Der (erforderlich) Ausdruck ist für das Laden von Modulen.

MIT / GNU Schema, eine Datei mit so etwas wie diese laden kann:

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

Aber ich weiß nicht, ob es in DrScheme funktioniert.

(require "~/path-to-directory/filename")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top