gpt4 book ai didi

scheme - 方案中的撇号类型是什么

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:37 24 4
gpt4 key购买 nike

我有使用成员函数的条件:

(cond ((member '1' (some-function)) (display #t)) (else (display #f)))

它工作正常,但我仍然找不到以下问题的答案:

1)'1'的类型是什么?

2)我有下一个表达式

(lambda(x)(= x 1))

如何转换为相同类型的'1'?

最佳答案

请注意 cond 表达式并没有按照您的想法进行。真正发生的事情是这样的:

(cond ((member '1 '(some-function))
(display #t))
(else
(display #f)))

换句话说:数字 1 被引用并且表达式 '(some-function) 被解释为带有符号 some-function 作为它的唯一成员。关于第一个问题,这个表达式:

'1'

... 在 Scheme 中无效 - 尝试在评估窗口中输入它,什么也不会发生:第一个引号适用于数字 1,第二个引号需要进一步输入,所以任何写入之后它会被引用。仅供引用,双引号表示字符串,与许多其他语言一样:"1"。但是 引号表示一个被引用 的表达式,其计算结果为自身:

'1
=> 1

这只是这个的简写:

(quote 1)
=> 1

在上面的表达式中这是不必要的,一个数字已经评估为自身:

1
=> 1

现在,关于第二个问题,它没有意义,因为 '1' 不是类型,如上所述。

关于scheme - 方案中的撇号类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22599149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com