rebol - 我怎样才能在 Rebol 中打开单词的换行状态?

标签 rebol rebol3

我知道,我知道。 “什么换行状态?”,你问。 好吧,让我告诉你:

append [] w: first new-line [hello] on
== [
    hello
]

W 现在是一个词,在附加到 block 时会创建一个新行。

你可以关闭它,例如在 Rebol 3 中这样:

append [] to word! w
== [hello]

但是我一直没有找到好的开启方式。 Rebol 大师,你可以吗?

澄清:我正在寻找这样的“f”:

append [] f to word! "hello"

其中有一个换行符。

最佳答案

似乎换行状态是根据分配的在赋值时是否有前面的换行符分配给单词的(我将反射(reflection)该声明的正确性一会儿)。

此函数将相同的值(应保留上下文)重新分配给具有新换行状态的单词:

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"
]
  • 应该在 工作和

  • 似乎在 工作v0.6.1 有一个警告:new-line? 似乎总是返回 true

关于rebol - 我怎样才能在 Rebol 中打开单词的换行状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28076979/

相关文章:

parsing - 如何用 Rebol PARSE 方言表达分支?

user-input - Rebol 命令行的基本输入

unicode - 解码 UTF16 二进制文件最有效的方法是什么?

clojure - Rebol 中与 Clojure 映射/应用表达式最接近的匹配是什么?

rebol - REBOL 中的 C 风格 for 循环

linux - 无法在 Linux 上运行 Red 语言脚本

rebol - 如何解析简单的xml文件

utf-8 - 使用 rebol 将编码 UTF8 更改为 UTF 8 BOM

unicode - Rebol 3 R3-GUI字段支持非ascii字符串输入吗?

rebol - 模块无法导出现有名称