2012-02-18 3 views
0

Я пишу функцию, которая возвращает элементы, которые отображаются в одном списке, а не в другом. Например,Ошибка схемы "за исключением: неправильное использование ключевого слова импорта единицы"

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

Затем возвращается сообщение об ошибке говорящее «за исключением: неправильное использование единицы импорта ключевого слова в: (за исключением (корд лм) п)».

Почему это происходит?

ответ

1

Похоже, вы сталкиваетесь с проблемой, связанной с библиотекой unit, в которой задано ключевое слово except. Но все равно можно использовать его как имя для вашей функции, поэтому я предполагаю, что что-то еще не так. Можно будет сказать больше, если вы предоставите полный код, который вы пытаетесь запустить.

+0

Привет, спасибо за помощь. На самом деле это был весь код, который я набрал после того, как я запустил DrRacket, так что я тоже смущен. – goldfrapp04

+1

Важно, чтобы точно указать *, где вы его набрали: в верхнем окне определения или в нижнем окне взаимодействия? Также важно знать, был ли какой-либо текст до того, что вы добавили (например, строка '# lang')? И, наконец, важно знать, какие у вас языковые настройки (оба). Но SO на самом деле не является форумом поддержки, поэтому лучше задать свой вопрос в [списке рассылки] (http://racket-lang.org/community.html) или в IRC (#racket) и т. Д. –

Смежные вопросы