2009-04-11 2 views
2

私はAbleson/Sussman 講義とバークレー61A講義の両方を使って、私の道を進めています。これははるかに私の です。私はバークレーの宿題をいくつかやってみたいですが、文、butfirst、butlastなどについては の定義が必要です。 Dr. Schemeには単純なスキーム言語が組み込まれていたようですが、直近のバージョン4.1.5ではそれがありません。 Planet PLT 私は単に私の定義ウィンドウに(require(planet "simply-scheme.ss"( "dyoo" "simply-scheme" 1 0)))を追加できると思っていました。私はhere からsimply.scmファイルをつかんでみました、私の博士スキームの定義ウィンドウにそれを貼り付け、それは動作しませんシンプルスキームイディオムスキームを探す

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

を得る:

高度な学生モードでは、私は 読み取りを取得します: "。"の違法使用。

ラインについて

(ラムダ(文字列引数)以下のコードで

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

Iを取得 セット!:にモジュールに必要な識別子を変異させることができない:。number->列 (ライン7次のコードの)あなたはそれのために設計された例を以下している場合を除き

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

答えて

4

高度な学生は本当にあなたのために働くことはありません。ほとんどの書籍や例がR5RSまたはそれのようなものを想定します。私は前を使用することをお勧めしますこれは、R RSとPLT requireの両方の構文と、その他のいくつかのことが含まれています。

惑星から単にSchemeのパッケージを使用するためには、あなたは新しい構文を必要と使用する必要があります(あなたがpackage listing pageでこれを見つけることができます。それが更新されていないdocs for the packageのように見える):

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

ブライアンありがとうございます。あなたは男です! – Leonard