首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rebol2 /查看问题:Rebol2中的布局功能是如何工作的?

Rebol2 /查看问题:Rebol2中的布局功能是如何工作的?
EN

Stack Overflow用户
提问于 2020-04-24 21:04:48
回答 2查看 125关注 0票数 1

“layout function”中使用的某些函数显然不存在,但“layout”工作正常。但当您尝试将“layout function”替换为包含一些调试语句的改编版本时,这些函数和未声明的变量将立即导致错误。

函数绑定?和绑定吗?例如,不显示已使用的跟踪函数的结果,因此使用这些函数不会获得额外的信息。对do-facets和grow facets函数特别感兴趣。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-25 19:10:43

以下是在Rebol 2中创建匿名上下文的两种方法:

代码语言:javascript
复制
context [
    semi-hidden-function: does [print "ok"]
    set 'non-hidden-function does [semi-hidden-function]
]

use [semi-hidden-function] [
    semi-hidden-function: does [print "ok"]
    set 'non-hidden-function does [semi-hidden-function]
]

在第一种形式中,您可以到达单词semi-hidden-function的上下文

代码语言:javascript
复制
>> probe bound? first body-of :non-hidden-function
make object! [
    semi-hidden-function: func [][print "ok"]
]

但在第二种形式中,你可能不会:

代码语言:javascript
复制
>> probe bound? first body-of :non-hidden-function
make object! [
]

我看到许多Reboler使用上述形式中的一种,不仅是为了隐藏,而且为了保持主函数的整洁和分离。

这里我还添加了你喜欢看到的函数,它有点长,所以我压缩了& enbased:

您可以简单地将下面的代码行粘贴到控制台,复制下面的文本并执行下面的代码行将其解压缩:write clipboard:// decompress debase trim/lines read clipboard://

代码语言:javascript
复制
eJyNVrty6zYQrcmvWKuJPWNFqXkn0Uyq29zbpeKwgMElhRgCOABoRfn67C7Ah5xkksJje3dxcPZ1w
N4fB6UxxQaG2Wlo6+rw62xsD2/W63fwA0wqqCsmDBGeletBpRTM25wQbj708QVuF2MRnE+g4MP0Yg
YfIKa7xR8PdRUn1DFHZ2OEE6ErC/luMAmvdUd3L1y0n+7QdnWVsVsGT8rYMwhWxzwrPkW0TYgpm9k
2QMR05LvO0HAEtG8B1TthVWjSBQM8OMnMh5Sj+wZD6VEGx0xVAsRWSLOh2+BWtsZFDGlJptwiiBxV
KWuhzZCCtqF3m188gnD85O/a5I/WZHvhsDi79u88Tt7Z+0JGsuRA+pEaNeDwj7VeZA7Yz5pKnJtU/
rugKmyo1vCFm4sLpAoI+KHsrBL2FBnwqe7qegz+9mmWHN4oely7PSnqFSS6n9K7qpFKqr31gevC9Z
WRi0DYkK6TNJkgTgsoQ9V19eV4hG+zTUbsQPfOE7HSGicm9ByTSkYzyozxpa7k1gZAW1RBhkoYPFg
yjWZnEUYPMZndPibnsLPQMR+4nZI194ZYLCMq9KkLN5P05dTjoCgJSPcJzydpLect/WTGTwDQqmlC
GotcN3LLPBiXcEQK+Gd3pO104+bN5V68aZ4sPm3Qpf6LW3Lc3HmUtrbkqTeCsELk3i3eOVh2/otXK
ra7vkzB4tYXlRPntr/jXfsem9Vr/Wj0U/H2Kime5duJ+72L6lETKpHYha3Zmyuu+OHhGHdAXHkl1+
UVceAF5SN5M2k2m7zJm61hnOVINbtkeKdpC5Lx7lwmQA7K+sl482ItITB4a/2tqOQrjDOpLjUa+wL
J09NA7zcoWNYrR3Qr3Y3fXk+adbyqVQl/gl9+JokfSDLPAjncjjSeF2iJGs2Zp8V3stRl+cvx/5fg
Evyf1IuM7Yhlrc8HBS8vFIZA78rhm4mRZpyN8xUdKa8Ph9yCFaiinCgFuYkzL8CTjyaZDzyvaVPKA
6IoDmynq4edXVhSVdBGfCUV/oEkx4F/+x11gmdiRZXCF4izvoAiQfNEi6z8eG6g1JwNF9qresf8To
yPZPkN4oKf8lhtZ7qNTP3pj/K7I47f5SmWRys/xrluJsoj7WiosH8Fqsci9zc/04t/UR8IWs3jhci
kegXdHppS/99cQO1HZ/7Efvs8aA7MPb81XdHpr/TBQCSuLNflcXiFIn35JTGO2mJYuIfgr2vmTZZ+
OXhiCQMpjojZ3hWJQ3aJCu5drDzZJRq0d4nsiCsL0N4niii+rI17X/4mYl/WxLr7C5ZY7idACQAA
票数 2
EN

Stack Overflow用户

发布于 2020-04-24 21:44:14

您可以在sdk的源文件中找到定义,例如

代码语言:javascript
复制
track: func [blk] [if verbose [print blk]]

在view-vid.r中。r

这里是一个帮助器函数,用于在未知上下文中获取单词/函数的定义/源,例如,无需访问sdk

代码语言:javascript
复制
find-anon: func [ words fn /local   ] [ 
    foreach word words [
        if word = fn [set :fn probe get word halt]
        if block? word [
            find-anon word fn
        ]
    ]
]

find-anon second :layout 'grow-facets
help grow-facets
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61409054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档