4

以下编程范例的名称是什么:

代码基于一组解析为真(子句)的逻辑测试执行。该子句由运算符和操作数组成。每个操作数都是一个值/对象。

不像在命令式语言中所做的那样显式评估子句(例如,正常的流控制,如if(){}),而是声明子句并将其绑定到结果代码。当子句满足时,在未来的任何时候,代码都会执行。

所以,它基本上是一个依赖树,它重新评估代码是否应该在依赖改变状态时执行。

例如,

when(a && b && c < 3 && d.changes())
{
  runThisCode();
}

我正在寻找一个更正式的名称和定义,搜索后我没有想出任何东西。它介于声明式和命令式之间,但我从未见过一种语言或范式可以做到这一点。

谢谢,肖恩

4

2 回答 2

2

也许是数据流编程?还是反应式编程

于 2011-03-28T07:37:33.840 回答
2

对我来说听起来像是一个规则引擎。例如,在Jess中,您可以定义此类声明性规则并调用命令式或面向对象的 Java 代码。

于 2011-03-28T07:42:40.157 回答