Я огляделся, и другой ответ об обмене стека сказал, что я обертываю что-то круглыми скобками, чего не следует делать, так как это вызывает значение как функцию. Я не могу найти, где в моем cond
это происходит. Вот ошибочная процедура
(define insert_labels (lambda (l)(
;; if the car is null, return empty list
(cond
;; if the next element is null, append and break
[(null? l) ""]
;; Before it was recurring to the null pointer and adding the car of that to
;; my hash table. This was my attempt to try and stop that but now i'm getting
;; my current error
[(eq? (cdr l) '()) 0]
;; if the car of the list is of type other, append the cadr and recur
[(eq? (what-kind (car l)) 'other) (hash-set! label_hash (car l) (cadr l)) (insert_labels (cdr l))]
;; else, recur
[else (insert_labels (cdr l))]
)
)
)
)
Появляется ошибка, потому что я пытаюсь остановить повторение моей процедуры после нулевого указателя. Но теперь это дает мне текущую ошибку. В других местах упоминается, что он выдает эту ошибку, потому что я использую () для вызова вызова функции, но я не вижу, как в этой строке это вызвало бы это, разве это не просто формат cond
?