Я хотел бы легко создать список цифр из входящего числа, используя функции Scheme number->string и string->list.
Это приведет к созданию списка цифр, который я хочу, но с одной проблемой: #\ будет предшествовать каждой цифре:
(define input 1234)
(define (digit-list input)
(string->list (number->string input))
)
Запуск digit-list на input дает:
(#\1 #\2 #\3 #\4 )
Как я могу создать этот список цифр без #\ перед каждой цифрой?





Предыдущий #\ представляет собой синтаксис схемы для символа. Вы можете преобразовать каждый символ в число, сначала сделав его string, а затем используя string->number:
(number? (string->number (string #\1)))
=> #t
Вы можете compose эти две процедуры и map их в свой список следующим образом:
(map (compose string->number string)
(string->list (number->string 1234)))
=> '(1 2 3 4)
Отлично, спасибо большое! По какой-то причине функция compose не была определена в моей среде, но, используя предоставленную вами ссылку, я смог ее найти: (define (compose f g) (lambda (x) (f (g x)))), и это сработало!