gpt4 book ai didi

scheme - 为什么不能在方案中定义 “or-function”?

转载 作者:行者123 更新时间:2023-12-04 13:28:43 24 4
gpt4 key购买 nike

我在方案中发现了有关特殊功能“或”的问题:

Joe Hacker states loudly that there is no reason or in Scheme needs to be special -- it can just be defined by the programmer, like this:

(define (or x y)
(if x
#t
y))

Is Joe right?



我不知道为什么不应该这样做。

可以请一些计划专家解释一下是否可行,如果不能,为什么?

最佳答案

这是因为此版本的or会评估其所有参数(因为它是一个函数),而标准的Scheme or(这不是一个函数,而是一种特殊的语法)不会进行评估。尝试在Scheme REPL上运行(or #t (exit)),然后使用or函数尝试相同的操作。

标准or的行为有时称为short-circuited:它仅评估需要的那些参数。这对于跨编程语言的二进制 bool 运算符(orand)非常普遍。 or看起来像函数调用的事实是Scheme/Lisp语法的一个功能,但看起来很欺骗。

关于scheme - 为什么不能在方案中定义 “or-function”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020870/

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