Мне нужна помощь в понимании синтаксиса о том, как добавить число в список, я делаю это из пользовательского ввода через консоль, чтобы эти элементы нужно вводить рекурсивно. Таким образом, для любого числа, которое вводится, список должен расти для каждого элемента (только числа).Добавление элементов в существующий список в схеме
Вот код, с которым я работаю, проблема заключается в втором условии. Сейчас это работает, но только создает пустой список каждого номера я ставлю в, так что результаты будут
>12
>202
>30
()()()
zero input: stopping list
(define (inputlist)
(let ((applist list))
(let ((inpt (read)))
(cond
((= inpt 0)(newline) (display "zero input: stopping list"))
;;OLD((number? inpt) (cons inpt applist) (display (applist))(inputlist))
((number? inpt) (append (applist)(list inpt)) (display (applist))(inputlist))
(else
display "Not a number")))))
Я понимаю, почему против не делать то, что мне нужно, чтобы это было делать, но есть аналогичные функциональные возможности добавить каждый элемент read в элемент в уже существующий список?
EDIT: Я получил ближе, что мне нужно было сделать, но все же с теми же результатами, теперь я добавляю к своему аппликатору список, который я создаю через каждый вход, хотя он все еще приводит к списков по мере ввода.
ВТОРОЙ РЕДАКТИРОВКА: Я понял, почему это печатает несколько(), потому что он вызывается из стека при вводе 0, поэтому я уверен, что он не работает, потому что добавление не работает так, как предполагалось, Я отобразил приложение в условном выражении 0 и возвращает один нулевой список.
Если я не скобки applist, я получаю выброшен ошибки, потому что INPT и applist не в то же самое время, или, по крайней мере, один из них становится называемый –
Frontier
Итак, у меня возникли проблемы с пониманием того, что я бросаю, когда я звоню в переменную или список, я получал эту ошибку для, будь то список или чтение или что вы, это из-за чрезмерной скобки? Что я там делаю неправильно? –
Frontier
@James Я обновил свой ответ с помощью правильного решения, но вам нужно больше времени уделять чтению учебника и документации, у вас все еще есть проблемы с некоторыми базовыми понятиями. –