2016-01-15 3 views
0

Я работаю с drRacket в классе на языках программирования. Мы используем язык под названием pl, и всякий раз, когда я пытаюсь отлаживать код, я получаю сообщение об ошибке. Например:Что такое «неизвестная ошибка expr» в отладчике drRacket?

#lang pl 

(: add : Number Number -> Number) 
(define (add x y) 
    (+ x y)) 

(test (add 1 1) => 2) 

работает нормально, но при отладке выдает ошибку:

expr-syntax-object-iterator: unknown expr: (quote-syntax (:-internal add (Number Number -> Number)) #:local)

Весь код дает подобную ошибку при попытке отладки, независимо от него будет реально работать или нет, и я» вы успешно отлаживали код на других компьютерах. Помоги пожалуйста!

+0

Какую версию DrRacket вы используете? Кроме того, где вы получили 'pl.plt'? У меня есть DrRacket версии 6.1.1 и 'pl.plt' из https://pl.barzilay.org/pl.plt, и при отладке нет проблем. –

+0

Я использовал drRacket версии 6.3, я попробовал более раннюю версию, и все работает нормально. Спасибо –

ответ

0

Проблема оказалась с версией drRacket я использовал (6.3), установив более старую версию исправили проблему

+0

Вам следует попытаться свести к минимуму это: попробуйте (a) удалить выражение 'test' и оставить простое выражение (если оно не выполняется, то это не тестовый макрос); (b) переключить язык на «typed/racket» (если это не удается, то это не на моем языке); (c) переключиться на 'typed/racket/no-check'; и, наконец, (d) переключиться на 'racket' и удалить объявление типа. –

+0

Если он работает после (a) или (b), то это мой макрос 'test' или моя языковая реализация (напишите мне об этом), после (c) или (d), тогда проблема заключается в типизированной ракетке, и ошибка должна быть или там, где он никогда не работает, это проблема отладчика. –

+0

Заключительное примечание: я не рекомендую использовать отладчик в своем классе, и я сам его не использую. Я рекомендую использовать функцию покрытия. –