我知道,我知道。你问,“什么是新线状态?” 好吧,让我告诉你:
append [] w: first new-line [hello] on
== [
hello
]
W现在是一个在附加到块时创建换行符的单词。
您可以将其关闭,例如Rebol 3中的这种方式:
append [] to word! w
== [hello]
但我没有找到一个很好的方法来打开它。你可以,Rebol大师吗?
澄清:我正在寻找一些'如此:
append [] f to word! "hello"
有一个新行。
答案 0 :(得分:2)
根据分配的值在分配时是否具有前一个换行符,似乎将新行状态分配给该词(我将对该词的正确性进行反思)陈述一段时间。)
此函数为具有新换行状态的单词重新分配相同的值(应保留上下文):
set-new-line: func [
'word [word!]
state [logic!]
][
set/any word first new-line reduce [get/any word] state
]
我们还可以测试给定单词的换行状态:
has-new-line?: func [
'word [word!]
][
new-line? reduce [get/any word]
]
使用中:
>> x: "Foo"
== "Foo"
>> has-new-line? x
== false
>> reduce [x]
== ["Foo"]
>> set-new-line x on
== "Foo"
>> has-new-line? x
== true
>> reduce [x]
== [
"Foo"
]
>> reduce [set-new-line x on set-new-line x off set-new-line x on]
== [
"Foo" "Foo"
"Foo"
]
答案 1 :(得分:2)
回答原来的问题(我知道,因为我问过它,在另一个化身):
f: func [w][first new-line append copy [] :w on]