gpt4 book ai didi

list - 为什么 "and"和 "or"在收到列表后会提供这些结果?

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

我将 Racket 和 Dr. Racket 用于教育目的。

在变量“x”和“y”的以下定义之后:

(define x (list 1 2 3))
(define y (list 4 5 6))

我决定使用这些变量创建 3 个不同的列表。

首先:

(append x y)

>> '(1 2 3 4 5 6)

第二个:

(cons x y)

>> '((1 2 3) 4 5 6)

第三:

(list x y)

>> ((1 2 3) (4 5 6))

在那之后,我决定对三个列表使用 bool 运算符“and”和“or”。令我惊讶的是输出。为什么会这样?为什么“或”和“和”选择其中一个列表?这个决定背后的比率是多少?

(and (append x y) (cons x y) (list x y))

>> '((1 2 3) (4 5 6))

(or (append x y) (cons x y) (list x y))

>> '(1 2 3 4 5 6)

最佳答案

很简单:and 返回 last 表达式的值,如果在至少有一个表达式为假,而 or 返回第一个为真的 表达式的值,如果全部为假,则返回 #f

记住:在 Scheme 中,唯一的 false 值是 #f,而其他任何值都被认为是 true,因此我们使用绰号“truthy”来表示非 false 值。特别是,在您的代码中:

(and (append x y) (cons x y) (list x y))

返回最后一个真值表达式的值:(list x y),而这个:

(or (append x y) (cons x y) (list x y))

返回第一个真值表达式的值:(append x y)

关于list - 为什么 "and"和 "or"在收到列表后会提供这些结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40054548/

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