为什么Rebol没有新线?同样处理换行符关键字和换行符?

Adr*_*ian 6 reflection newline rebol

我认为以下Rebol 3代码:

x: [newline 1 2]
y: [
1 2]

print x
print new-line? x
print y
print new-line? y
Run Code Online (Sandbox Code Playgroud)

应该输出:

<empty line>
1 2
true
<empty line>
1 2
true
Run Code Online (Sandbox Code Playgroud)

但输出的是:

<empty line>
1 2
false
1 2
true
Run Code Online (Sandbox Code Playgroud)

两个块在缩小时应该产生换行符后跟'1'和'2',因此,IMO应该相同地打印.不太清楚是否新线?在两个块上也应该给出相同的结果,因为newline关键字应该等同于这种测试的文字换行符.

Hos*_*ork 3

new-line?由 LOAD 和 MOLD 检查和设置的标志new-line仅由 LOAD 和 MOLD 使用。对于程序中的所有其他语义目的,它也可能不存在。

所以你x和你y是完全不同的。注意:

x: [newline 1 2]
y: [
1 2]

3 = length? x
2 = length? y
Run Code Online (Sandbox Code Playgroud)

Rebol 的一个怪癖是它会挑选出这一点空白信息并将其存放在一个隐藏的地方。但可以说,断行的选择代表了在源代码中通常很重要的东西,如果你将它反映回文本中,你会希望保留比其余空白更多的内容。