在一个获取变量作为参数的rebol函数中,如何检索原始变量

时间:2013-07-25 17:52:45

标签: debugging rebol

我正在调试一个不像我希望的那样的脚本;

我正在编写一个小的调试实用程序函数,它将打印'word后跟其值。 我写了这个:

debug: func [x] [print rejoin ['x " => " x] wait 0.5 ]

而且,在我的代码中,我想简单地称之为:

phrase: "beer is good"
mots: parse phrase " "
debug phrase
    foreach mot mots [
    debug mot
    ;do something...
    ]

我会梦想它会在控制台上输出如下:

phrase => "beer is good"
mot => "beer"
mot => "is"
mot => "good"

但我找不到一种方法来检索变量的原始名称,即它的名称超出了函数的范围。

2 个答案:

答案 0 :(得分:2)

如果你查看你的'调试功能并将其与'??的来源进行比较,你会看到你需要采取不同的做法:

??: func [
    {Prints a variable name followed by its molded value. (for debugging)}
    'name
][
    print either word? :name [head insert tail form name reduce [": " mold name: get name]] [mold :name]
    :name
]

答案 1 :(得分:0)

我没有足够的搜索......

?? variable

做我需要的。

>> ? ??
USAGE:
    ?? 'name 

DESCRIPTION:
     Prints a variable name followed by its molded value. (for debugging)
     ?? is a function value.

ARGUMENTS:
     name -- (Type: any)