2012-02-18 7 views
0

私は、あるリストに表示され、別のリストには表示されない要素を返す関数を書いています。たとえば、スキームエラー "except:ユニットインポートキーワードの誤用"

(except '(a b c) '(a d b e f)) 

は、'(c)を返します。最初の引数はアトムであり、両方ともフラットであるとみなされます。

(define (except lm ln) 
    (cond ((null? ln) lm) 
     ((not (list? lm)) 
     (cond ((in? lm ln) '()) 
       (#t lm))) 
     ((null? lm) '()) 
     ((in? (car lm) ln) (except (cdr lm) ln)) 
     (#t (cons (car lm) (except (cdr lm) ln))))) 

次に、「except:unit importキーワードの誤用((cdr lm)lnを除く)」というエラーが返されます。

これはなぜ発生していますか?

答えて

1

exceptキーワードが定義されたunitライブラリで問題が発生しているようです。しかし、あなたの関数の名前としてそれを使用することはまだ可能であるはずです。だから私は他の何かが間違っていると推測しています。あなたが実行しようとしている完全なコードを提供すればもっと言い表すことができます。

+0

こんにちは、ご協力いただきありがとうございます。実際、これはDrRacketを起動した後に入力したすべてのコードだったので、私も混乱しています。 – goldfrapp04

+1

あなたが入力した場所を正確に*知っておくことが重要です:トップ定義ウィンドウまたはボトムインタラクションウィンドウ?あなたが追加したものの前にテキストがあったかどうかを知ることも重要です(例えば '#lang'行のいくつか)?そして最後に、あなたは言語設定が何であるかを知ることが重要です(両方)。しかしSOは本当にサポートフォーラムではないので、[メーリングリスト](http://racket-lang.org/community.html)やIRC(#racket)などで質問する方が良いでしょう。 –