在通用Lisp中,是否有将整数解析为它们的char等价项的方法?
我找了一个早上,只找到了char-int.
* (char-int #\A)
65其他一些消息来源也声称存在int-char
* (int-char 65)
; in: INT-CHAR 65
; (INT-CHAR 65)
;
; caught STYLE-WARNING:
; undefined function: INT-CHAR
;
; compilation unit finished
; Undefined function:
; INT-CHAR
; caught 1 STYLE-WARNING condition
debugger invoked on a UNDEFINED-FUNCTION:
The function COMMON-LISP-USER::INT-CHAR is undefined.
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.
("undefined function")然而,我真正想要的是一种将1转换为#\1的方法
我该怎么做?
发布于 2014-10-02 09:08:49
为了在字符和它们的数字编码之间进行转换,有char-code和code-char
* (char-code #\A)
65
* (code-char 65)
#\A但是,要将数字转换为相应的字符,需要使用digit-char
* (digit-char 1)
#\1
* (digit-char 13 16) ; radix 16
#\D发布于 2014-10-02 13:37:27
已经有一个被接受的答案,但是学习如何找到答案和得到具体的答案一样有帮助。查找所需函数的一种方法是执行(适当的搜索"CHAR“)。例如,在CLISP中,你会得到:
> (apropos "CHAR" "CL")
...
CHAR-CODE function
...
CODE-CHAR function
...另一个有用的资源是HyperSpec。有置换指数,在"C“页面中搜索"char”将非常有用。或者,在HyperSpec中,13.字符一章是相关的,13.2“字符词典”是有用的。
这两种方法都可以找到另一个答案中提到的数字字符函数。
https://stackoverflow.com/questions/26157480
复制相似问题