2009-04-11 5 views
2

Je travaille mon chemin à travers SICP, en utilisant à la fois les conférences Ableson/Sussman et les conférences Berkeley 61A, qui sont beaucoup plus ma vitesse . Je voudrais faire quelques devoirs de Berkeley, mais j'ai besoin des définitions pour la phrase, mais la première, la fin, et ainsi de suite. On dirait qu'à un moment donné, il y avait un langage de schéma simple intégré à Dr. Scheme, mais la version 4.1.5, la plus récente, ne l'a pas. De Planet PLT Je pensais que je pourrais simplement ajouter (require (planet "simply-scheme.ss" ("dyoo" "simply-scheme" 1 0))) dans ma fenêtre de définitions. Je reçoisJe cherche des schémas idiomatiques pour Scheme

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

J'ai essayé saisir le fichier simply.scm de here et collé dans ma fenêtre de définitions Dr Scheme, mais il ne fonctionne pas:

En mode Advanced Student, je reçois lecture : utilisation illégale de "."

Pour la ligne (lambda (chaîne args) dans le code suivant

(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)))))) 

En r5rs je reçois ensemble !: ne peut pas muter identificateur de module requis:.. Chaîne number-> (ligne 7 du code ci-dessous)

(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) 

Répondre

4

étudiant avancé ne sera jamais vraiment travailler pour vous, sauf si vous suivez des exemples qui ont été conçus pour cela. la plupart des livres et des exemples assumeront R5RS ou quelque chose comme ça. Je recommanderais d'utiliser le pré tty Big language, car cela inclut à la fois R RS, ainsi que la syntaxe PLT require, et quelques autres choses.

Pour utiliser le package simplement Scheme de PlaNet, vous devrez utiliser la nouvelle syntaxe exigent (vous pouvez trouver sur le package listing page, il semble que le docs for the package n'a pas été mis à jour):

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

Merci Brian. Tu es l'homme! – Leonard