2009-04-11 17 views
2

Ich arbeite meinen Weg durch SICP, mit beiden Ableson/Sussman Vorträge und die Berkeley 61A Vorträge, die weit mehr sind meine Geschwindigkeit. Ich möchte einige der Berkeley-Hausaufgaben machen, aber die Definitionen für Satz, butfirst, butlast und so weiter. Es sieht so aus, als ob zu einer Zeit eine einfache Schemasprache in Dr. Scheme eingebaut war, aber Version 4.1.5, die neueste, hat sie nicht. Von Planet PLT Ich dachte, ich könnte einfach hinzufügen (erfordern (Planet "einfach-scheme.ss" ("dyoo" "einfach-Schema" 1 0))) in meinem Definitionsfenster. Ich bekommeIch suche Simple Scheme Idiome für Dr. Scheme

require: PLaneT 
could not find the requested package: Server had no matching package: 
No package matched the specified criteria 

Ich versuchte, die simply.scm Datei aus here greifen und klebte es in meine Dr Schema-Definitionen Fenster, aber es funktioniert nicht:

Im Fortgeschrittenen-Modus, ich Lese erhalten : illegale Verwendung von "."

Für die Linie (Lambda (string args) im folgenden Code

(define whoops 
    (let ((string? string?) 
    (string-append string-append) 
    (error error) 
    (cons cons) 
    (map map) 
    (apply apply)) 
    (define (error-printform x) 
     (if (string? x) 
     (string-append "\"" x "\"") 
     x)) 
    (lambda (string . args) 
     (apply error (cons string (map error-printform args)))))) 

In R5RS ich Set !: kann nicht Modul-Kennung erforderlich in mutieren:.. Nummer-> string (Linie 7 des folgenden Codes)

(if (char=? #\+ (string-ref (number->string 1.0) 0)) 
    (let ((old-ns number->string) 
     (char=? char=?) 
     (string-ref string-ref) 
     (substring substring) 
     (string-length string-length)) 
     (set! number->string 
     (lambda args 
      (let ((result (apply old-ns args))) 
     (if (char=? #\+ (string-ref result 0)) 
      (substring result 1 (string-length result)) 
      result))))) 
    'no-problem) 

Antwort

4

Fortgeschrittenen wird nie wirklich für Sie arbeiten, wenn Sie Beispiele sind folgende, die dafür entworfen wurden. die meisten Bücher und Beispiele werden R5RS oder etwas ähnliches übernehmen. ich würde empfehlen, die Pre mit tty Große Sprache, wie das sowohl RS RS, als auch die PLT require Syntax, und ein paar andere Dinge.

Um das einfach Schema Paket von Planeten zu verwenden, müssen Sie die neue Syntax benötigen verwenden (Sie können dies auf den package listing page finden, es sieht aus wie die docs for the package wird nicht aktualisiert):

(require (planet dyoo/simply-scheme:1:2/simply-scheme)) 
+0

Danke Brian. Du bist der Mann! – Leonard