gpt4 book ai didi

rebol - 了解 block 中的打印品和符号之间的关系

转载 作者:行者123 更新时间:2023-12-01 11:33:43 25 4
gpt4 key购买 nike

场景 1:

red>> sizes: [small medium large]
== [small medium large]
red>> print sizes
*** Script error: small has no value
*** Where: print

场景 2:

red>> print first sizes
small

我希望场景 1 和场景 2 具有相同的行为(要么在评估时出错,要么被视为符号)。

我想了解以下场景是否特定于 print 或我应该理解的 Red/Rebol 概念。

我知道 block 中的所有单词都被视为符号,并且需要一个函数来评估它们(如果需要)。所以场景 1 是有道理的。但是如果我们从一个 block 中提取一个词(使用 first),它仍然是一个符号?

最佳答案

您的理解是正确的,这两种情况下的行为特定于print,或者更特定于reduce ( reduce is an alternate method of evaluation to do )。 print 本质上是一个三步过程:reduceform,然后将结果字符串发送到 system/ports/output.

>> message: "Hello"
== "Hello"

减少消息:

>> reduce message
== "Hello"

减少 block :

>> reduce [message]
== ["Hello"]

减少'message(评估为单词message):

>> reduce 'message
== message

减少 first [message](评估为单词 message):

>> reduce first [message]
== message

在您的场景中,您可以通过抢占 block 的减少来避免评估:

>> reduce form [small medium large]
== "small medium large"

>> print form [small medium large]
small medium large

关于rebol - 了解 block 中的打印品和符号之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29733053/

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