`
heoxsoft
  • 浏览: 13006 次
  • 性别: Icon_minigender_1
  • 来自: 潍坊
最近访客 更多访客>>
社区版块
存档分类
最新评论

REBOL 中 Bind 的理解

 
阅读更多

Rebol文档中的Bind的定义如下:

 

Bind words to a special context.

 

Binds meaning to words in a block. That is, it gives words a context in which they can be interpreted. This allows blocks to be exchanged between different contexts, which permits their words to be understood. For instance a function may want to treat words in a global database as being local to that function.

The second argument to BIND is a word from the context in which the block is to be bound. Normally, this is a word from the local context (e.g. one of the function arguments), but it can be a word from any context within the system.

BIND will modify the block it is given. To avoid that, use the /COPY refinement. It will create a new block that is returned as the result.

 

我个人的理解是:Rebol变量也就是word的存取范围是词法范围,而不是动态范围。所以当一个Block被传递到另外的context比如某个函数中时,evaluate这个block时,block中的word就有可能没有绑定的值。这是就需要使用Bind函数了。

bind someblock ‘someword,就可以将调用这个bind的context也一般也就是someword所在的context合并到someblock的context中(而不是替换someblock的context),此时引用someblock中someword时,rebol就会到定义someword的函数中寻找它的值。

 

类似的情况在clojure也存在。clojure使用binding来产生一个动态绑定。

0
0
分享到:
评论

相关推荐

    REBOL的实例

    在“REBOL的实例”这个主题中,我们将探讨一些关键的REBOL概念和特性,通过实际的代码示例来加深理解。 1. **REBOL语法**:REBOL的语法十分直观,没有分号作为行结束符,而是使用换行来区分语句。例如,定义一个...

    Rebol A programmer's guide.pdf

    根据提供的文件信息,我们可以从《Rebol:程序员指南》这本书中提炼出以下关键知识点: ### 书籍基本信息 - **书名**:Rebol – A programmer's guide - **作者**:Olivier Auverlot 和 Peter W.A. Wood - **出版...

    rebol程序设计教程

    - **值与类型**:理解REBOL中的基本数据类型及其使用方法。 - **程序结构**:学习如何组织REBOL程序的结构,包括函数、变量、流程控制等。 - **视窗程序开发**:探索如何使用REBOL编写简单的图形用户界面应用程序。 ...

    REBOL编程语言 3.0

    一个很实用的软件,非常小巧,容易理解。总之,用过就知道了。

    Creating Business Applications With REBOL

    这些建议对于初学者来说是非常宝贵的资源,有助于他们更好地理解REBOL的核心价值所在。 #### 三、使用GUI窗口和控件输入及显示数据 ##### 3.1 基本布局指南和控件 REBOL不仅支持命令行界面,还提供了创建图形用户...

    REBOL代码大全

    REBOL代码大全

    Rebol绝对入门编程Rebol Programming For The Absolute Beginner

    本教程演示了使用一种灵活且功能强大的语言Rebol来实现现实世界的编程目标有多么容易。

    rebol-view-278-3-1.exe

    rebol-view-278-3-1.exe

    通过模拟 退火进行快速网络模块化和角色计算_Rebol_代码_下载

    总的来说,通过这个项目,我们不仅可以学习到模拟退火算法在网络模块化中的应用,还可以深入理解Rebol语言如何与C库集成,提升编程效率。同时,对于网络分析和复杂系统研究者来说,这是一套实用的工具,可以帮助他们...

    rebol:Rebol解释器的源代码-Source code

    Rebol解释器的源代码开放给公众,这使得开发者能够深入理解其内部工作原理,并根据需要进行定制或扩展。 **开源的重要性** 开源软件是IT行业的基石之一,它鼓励协作、透明度和创新。Rebol的源代码开放给公众,意味...

    very-old-rebol-scripts:一些非常旧的 REBOL 脚本,未维护

    这些脚本可能记录了早期 REBOL 的编程实践和技术,对于学习和理解 REBOL 的历史发展以及早期编程风格有着宝贵的参考价值。 REBOL 的核心概念是数据表达的自然性,它允许通过简单的语法直接表示各种数据结构,如块...

    rebol-css-validator:Rebol CSS 验证器

    1. **快速定位错误**:rebol-css-validator 可以迅速识别CSS中的语法错误、属性错误或未定义的规则,帮助开发者快速定位和修复问题。 2. **提升代码质量**:通过验证,开发者可以遵循最佳实践,写出更高质量的CSS,...

    rebol-proposals:Rebol提案孵化器

    通过这个平台,开发者可以共同探讨Rebol的未来方向,为这个小巧但功能强大的语言注入新的活力,使其在快速发展的软件行业中保持竞争力。如果你是Rebol的爱好者或开发者,参与这个项目将是你贡献自己力量,推动Rebol...

    vim-rebol:REBOL 3语法高亮

    Vim中REBOL(3)的语法突出显示 我将假设需要Vim的REBOL语法突出显示的任何人都已经意识到REBOL是一种谐音语言。 我在REBOL上看到的大多数语法突出显示都淡化了它的谐音性,将其视为DO方言是最重要的。 我想在DO方言...

    Rebol:一些Rebol Red实验

    1. **兼容性与向后兼容**:Red旨在与Rebol保持高度兼容,允许Rebol的代码在Red环境中运行,同时引入新的特性和改进,以满足现代编程的需求。 2. **高性能**:Red通过其编译器实现了对原生机器码的直接生成,大大...

    Rebol-Notation:Rebol 交换格式的正式描述

    解析Rebol交换格式的库和工具在Rebol社区中广泛存在,它们允许程序员在各种语言中读取和写入Rebol格式的数据。同时,Rebol本身也提供了内置的函数来处理这种格式。 总的来说,Rebol交换格式是Rebol语言的一个核心...

    replpad-js:用于Rebol语言的交互式Web控制台(Ren-C分支)

    REPLPAD-JS 版权所有(c)2018-2020 hostilefork.com 该项目致力于为Rebol3的Ren-C分支构建一个在Web浏览器中运行的交互式GUI控制台: 它的灵感来自于Qt编写的大约2015年以前的非网络工作量: 这个项目处于发展的...

    Power-Mezz:Rebol脚本的Power Mezz软件包

    Power-Mezz项目的目标是将一些功能强大的工具和库移植到Rebol 3中,尽管它目前还处于不完整和实验性的阶段。 Rebol 3是该语言的主要版本之一,它在2012年发布,带来了许多性能改进和新特性。然而,Rebol 3的开发在...

    rebol:基于语义解析的统计机器翻译

    (注意这与编程语言 REBOL [0] 无关!)依赖关系###Geoquery: WASP -1.0 包括地理查询知识库和用于查询它的脚本。 评估脚本略有修改以产生完整的输出。 这些脚本可以在 data/geoquery/wasp/ 中找到,它们进入 wasp...

Global site tag (gtag.js) - Google Analytics