Как правильно преобразовать символ #\1
в целое число 1
?
Я ввел число в список и получил это:
(#\1 #\2 #\3)
и хотите преобразовать это в
(1 2 3)
CL-USER > (digit-char-p #\1)
1
digit-char-p
возвращается
NIL
иначеТаким образом, это оба:
@Sylwester -p
в конце сообщает вам, что это предикат, прежде чем вы узнаете об этом что-либо еще.
@Sylwester Это также предикат, поскольку он возвращает либо число, либо NIL
, если число не определено в его необязательном аргументе счисления.
Немного любви к низкотехнологичным решениям?
(parse-integer (string #\1))
Менее эффективен, но все же заслуживает упоминания.
(- (char-int #\1) (char-int #\0))
Должен любить двойственность этого, поскольку кажется, что это также предикат :)