如果我在这样的方案中定义一个列表
(define list '(when i type I 1 23 4 2))
Run Code Online (Sandbox Code Playgroud)
什么类型的东西(汽车清单)返回?另一个问题是:我可以将其转换为字符串吗?
在问题中显示的列表中,汽车是符号 'when.您可以验证它,但首先让我们将列表的名称更改为其他名称,以避免与内置list过程发生名称冲突:
(define lst '(when i type I 1 23 4 2))
(symbol? (car lst))
> #t
Run Code Online (Sandbox Code Playgroud)
最后一行中的#t(true)显示第一个元素确实是一个符号.如果您需要将其转换为字符串,只需执行以下操作:
(symbol->string (car lst))
> "when"
Run Code Online (Sandbox Code Playgroud)
编辑:
回答评论中的问题,这应该有效:
(define (isvariable? symbol)
(and (symbol? symbol)
(eqv? (string-ref (symbol->string symbol) 0)
#\?)))
Run Code Online (Sandbox Code Playgroud)