DMN中的知识函数式编程:递归

简介: 本文探讨了DMN中递归支持的实现,重点分析了FEEL语言如何通过函数式编程结构建模业务逻辑。文章以阶乘计算为例,展示了如何在DMN中通过BKM节点实现递归函数,并进一步介绍了如何使用递归连接字符串列表,展示了FEEL语言在处理复杂逻辑时的灵活性与强大能力。

在这篇文章中,我想分享有关DMN中递归支持的有趣见解,并重点介绍FEEL语言的特定属性如何使函数式编程结构能够在DMN中建模。

我们将从一个基本示例开始,以演示FEEL语言和DMN结构的商业友好性如何使我们能够驯服一个通常令人不快的问题:递归函数的定义。然后,我们将在函数式编程领域冒险,在FEEL/DMN的摇篮中,我们将欣赏功能结构中最好的生物之一:Y组合子是一种高阶函数,用于在函数式编程中实现递归。最后,我们会发现自己再次被问到那个著名的问题:

图片6.png

图片7.jpg

使用“阶乘”业务知识模型(简称BKM)节点递归地定义实际的阶乘函数:

图片8.jpg

正如我们所注意到的,该函数与任何其他普通递归函数一样调用自身,这里唯一的区别是它被定义为DMN盒装表达式的一部分;该函数的名称由BKM节点定义,带有框框表达式结构“阶乘”,然后该函数引用并作为FEEL表达式“阶乘(n-1)”的一部分调用自身。

我们可以使用此BKM来计算输入数据节点传递的实际结果,作为“计算阶乘”决策的一部分,如下所示:

这运行良好,并给出了预期的结果:

图片9.jpg

连接字符串列表

将字符串列表和分隔符连接到单个分隔字符串。

图片10.png

图片11.jpg

FEEL没有内置函数将字符串列表连接到单个字符串,但我们可以使用递归调用来完成此操作。决策连接列表调用BKM连接,这是一个具有两个参数的函数:用于分隔连接字符串的分隔符和要连接的字符串列表。它被实现为上下文,第一个上下文条目接下来定义另一个FEEL函数。(或者,连接下一个可以定义为单独的BKM。)函数连接下一个说明了递归调用的基本模式,其中FEEL函数评估部分解决方案-这里是新的部分-并基于测试,该函数返回一个值或使用更新的参数调用自身。BKM连接调用连接下一个一次,并递归直到连接完成。

相关文章
|
10月前
|
机器学习/深度学习 人工智能 算法
Together可视化规则引擎
DMN标准定义了可视化规则引擎的技术规范,实现业务逻辑的图形化建模与高效执行。它打破技术壁垒,支持复杂算法与AI融合,提升企业敏捷性,降低运维成本,推动规则引擎向通用算法引擎演进。
|
10月前
|
人工智能 供应链 数据可视化
一文读懂AI引擎与Together规则引擎重塑智能决策
从1950年图灵提出人工智能设想到如今AI引擎实现自主决策,Together规则引擎正成为智能决策核心。它通过动态规划、多工具调用与持续学习机制,赋能供应链、财务、定价等场景,提升决策透明度与效率。Together助力AI引擎突破落地瓶颈,推动企业管理迈向“决策即服务”新时代。
|
10月前
|
机器学习/深度学习 分布式计算 算法
规则引擎开发现在已经演化成算法引擎了
规则引擎是一种基于专家知识的程序,用于解决复杂决策问题。它通过条件与动作的匹配,实现自动化判断,广泛应用于金融、电商等领域。核心功能包括规则管理、推理算法(如Rete算法)及决策模型,如DMN标准,提升了建模能力与执行效率。
|
10月前
|
移动开发 程序员
您是否已经为DMN规则平台做好了准备?
DMN标准旨在让业务用户无需编程即可实现决策逻辑,通过DRD图表、决策表和FEEL语言简化决策建模。本文介绍了DMN的核心概念,并通过测试题帮助读者评估自身是否适合学习DMN。
|
9月前
|
并行计算 程序员 API
Python版本进化史:从3.6到3.14,每个版本都带来了什么惊喜?
程序员晚枫,全网30万下载的python-office作者。亲历Python 3.6到3.14进化历程,详解各版本核心新特性:f-strings、数据类、海象运算符、模式匹配、性能飞跃至多解释器并发革命,助你掌握Python演进脉络,高效开发。
837 14
|
10月前
|
机器学习/深度学习 人工智能 数据可视化
一文看懂决策引擎平台必备功能都有哪些
Together规则引擎是一款决策智能平台,旨在帮助企业高效管理、执行和部署半自动及全自动决策。它融合业务规则、数据分析、机器学习与流程自动化技术,支持多场景智能决策,助力企业提升运营效率与商业价值。
|
11月前
|
数据采集 人工智能 监控
快手电商 API 接口:快手平台电商活动参与度深度分析
快手电商API助力商家深度分析活动参与度,通过实时数据监控与用户行为分析,优化营销策略,提升转化率和用户粘性,实现智能化电商运营。
|
存储 监控 调度
云服务器成本优化深度解析与实战案例
本文深入探讨了云服务器成本优化的策略与实践,涵盖基本原则、具体策略及案例分析。基本原则包括以实际需求为导向、动态调整资源、成本控制为核心。具体策略涉及选择合适计费模式、优化资源配置、存储与网络配置、实施资源监控与审计、应用性能优化、利用优惠政策及考虑多云策略。文章还通过电商、制造企业和初创团队的实际案例,展示了云服务器成本优化的有效性,最后展望了未来的发展趋势,包括智能化优化、多云管理和绿色节能。
|
人工智能 搜索推荐 测试技术
AI 辅助编程的效果衡量
本文主要介绍了如何度量研发效能,以及 AI 辅助编程是如何影响效能的,进而阐述如何衡量 AI 辅助编程带来的收益。
|
存储 缓存 编译器
Linux kernel memory barriers 【ChatGPT】
Linux kernel memory barriers 【ChatGPT】
317 11