在本文中,我想分享有关DMN中的递归支持的有趣见解,并重点介绍FEEL语言的特定属性如何使功能编程结构能够在DMN中建模。
我们将从一个基本的示例开始,以演示FEEL语言和DMN构造的“商业友好”性质如何使我们能够解决一个通常不愉快的问题:递归函数的定义。 然后,我们将在FP土地中冒险,并且在FEEL / DMN的摇篮中,我们将欣赏功能构造最好的生物之一:Y Combinator。 最后,我们将再次被问到一个著名的问题:
![](https://i-blog.csdnimg.cn/blog_migrate/c5111a215ef3b26fc50eab2ea980865b.png)
使用纯工程方法,让我们立即深入研究问题!
基本递归示例
Drools DMN开源引擎允许在DMN商业知识模型节点中提供递归支持。 这使递归函数的建模非常容易, 这是在DMN中为递归函数建模时的推荐方法 :允许函数以其名称进行调用。
让我们看一个简单的示例:在DMN中对阶乘函数建模。
我们可以使用Kogito DMN编辑器,并如下定义DRD: