В вашем коде несколько ошибок, но, вероятно, причиной проблемы, о которой вы здесь сообщили, является то, что в третьей строке указаны неверные скобки. Вы пытаетесь позвонить removeDupes
, но ваш код на самом деле этого не делает; вместо этого значение в этом случае заканчивается (cdr L)
. Вы понимаете почему?
Когда вы исправите это, вы обнаружите, что ваш код начинает выдавать ошибки. Для того, с кем вы столкнетесь в первую очередь: внимательно посмотрите, как вы вызываете cons
в последней строке. Что касается того, с чем вы, вероятно, столкнетесь: помните, что ()
не является самооценкой в Схеме.
(Я думаю, что такого рода вещи гораздо сложнее пропустить, если вы позаботитесь о пробелах и компоновке вашего кода. Например, ставьте пробелы между элементами каждого списка. ошибки перестают происходить, вы можете захотеть проверять круглые скобки каждый раз, когда сталкиваетесь с загадочной ошибкой: пропустили ли вы (
в начале выражения или добавили дополнительный (
перед аргументами или забыли дополнительный уровень скобок вокруг предложения cond
, и т. д. и т. д. и т. д. и т. п. Не волнуйтесь: через некоторое время это прекратится ...)