【问题标题】:I want to call it side-effect programming, but there's gotta be a better term for this我想称之为副作用编程,但必须有一个更好的术语
【发布时间】:2011-07-24 06:36:56
【问题描述】:

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

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

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

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

例如,

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

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

谢谢, 肖恩

【问题讨论】:

标签: dependencies paradigms declarative imperative


【解决方案1】:

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

【讨论】:

  • 我认为你是对的,我称之为“基于规则的编程”,很久以前我玩过的系统是 CLIPS,显然是 Jess 的祖先.也许有人可以在Prolog 中做类似的事情,我从未完全探索过。
【解决方案2】:

【讨论】:

  • 基于响应式编程的 Wikipedia 文章,我觉得我所问的内容最接近它。没有任何东西是从知识库中推断出来的。它比这简单得多,就像给定的单元格示例一样,当公式中引用的单元格发生更改时,Excel 中的单元格会自动更新。
最近更新 更多