Преобразование строки в целое число в схему

Как преобразовать строку цифр в целое число? Я хочу, чтобы "365" было преобразовано в 365.

То, что я пробовал, string- > then, затем char → integer, но это возвращает значение ASCII этого целого числа, как я могу получить это целое число?

Пожалуйста, помогите.

Ответы

Ответ 1

Попробуйте: string->number

> (string->number "1234")
1234

Ответ 2

Альтернативное решение для синтаксического анализа целых чисел из строк:

#lang typed/racket

(: numerical-char->integer (-> Char
                               Integer))
(define (numerical-char->integer char)
  (let ([num (- (char->integer char) 48)]) ; 48 = (char->integer #\0)
    (if
     (or (< num 0) (> num 9))
     (raise 'non-numerical-char #t)
     num)))

(: string->integer (-> String
                       Integer))
(define (string->integer str)
  (let ([char-list (string->list str)])
    (if (null? char-list)
        (raise 'empty-string #t)
        (foldl
         (λ([x : Integer] [y : Integer])
           (+ (* y 10) x))
         0
         (map numerical-char->integer char-list)))))