Вы можете преобразовать строку в список символов с помощью string->list
. Например.
(string->list "1234") ; ==> (#\1 #\2 #\3 #\4)
Вы можете преобразовать символ в его значение ascii с помощью char->integer
. Например.
(char->integer #\1) ; ==> 49
Значения Ascii для #\0
... #\9
расположены в порядке возрастания, поэтому вы можете вычесть, чтобы получить цифровое значение:
(- (char->integer #\1) 48) ; ==> 1
Создайте процедуру, в которой вы объедините их с map
, и все готово.
(define (number-string->number-list str)
(map (lambda (ch)
<??>)
(string->list str)))
(number-string->number-list "1234") ; ==> (1 2 3 4)