2.1.8 允诺对象

Keywords:

Next: ,Previous: Built-in objects and special forms,Up: Basic types

2.1.8 允诺对象

允诺对象(promise objects)是 R 的悠闲(lazy)求值机制的一部分。它们含有三个槽(slots):值,表达式和环境。当一个函数被调用,首先参数匹配,然后每个形式参数都会被一个允诺约束。用作形似参数的表达式以及函数调用的环境的指针都保存在允诺里面。

直到该参数被访问,才会有关联允诺。当参数被访问时,保存的表达式会在保存的环境中求值,并返回结果。结果同样被允诺保存。函数 substitute 会提取一个表达式槽里面的内容。这使得程序员既可以访问允诺相关的值也可以访问相关的表达式。

在 R 语言里面,允诺对象常常是隐含的对象。(在以后的R发布版本中,它们相对R代码是透明的,因为它们总是在被访问的时候求值。)实际的函数参数是这种类型的。函数 delayedAssign 可以使一个允诺出现在表达式的外面。通常还没有办法在 R 代码里面检验一个对象是否是允诺,同时也没有方法用 R代码确定一个允诺的环境。

Hits:Loading...

special topic