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连接调用连接下一个一次,并递归直到连接完成。

相关文章
|
3月前
|
人工智能 供应链 数据可视化
一文读懂AI引擎与Together规则引擎重塑智能决策
从1950年图灵提出人工智能设想到如今AI引擎实现自主决策,Together规则引擎正成为智能决策核心。它通过动态规划、多工具调用与持续学习机制,赋能供应链、财务、定价等场景,提升决策透明度与效率。Together助力AI引擎突破落地瓶颈,推动企业管理迈向“决策即服务”新时代。
|
3月前
|
机器学习/深度学习 人工智能 算法
Together可视化规则引擎
DMN标准定义了可视化规则引擎的技术规范,实现业务逻辑的图形化建模与高效执行。它打破技术壁垒,支持复杂算法与AI融合,提升企业敏捷性,降低运维成本,推动规则引擎向通用算法引擎演进。
|
XML Java Android开发
Android Studio App开发之使用相机拍摄照片和从相册中选取图片(附源码 超详细必看)
Android Studio App开发之使用相机拍摄照片和从相册中选取图片(附源码 超详细必看)
2061 2
|
3月前
|
人工智能 自然语言处理 供应链
风险控制规则引擎:从敏捷开发工具到管理逻辑的承载者
Together规则引擎助力国产低代码平台升级,打造管理逻辑数字化核心。通过封装审批、风控、定价等业务规则,实现流程智能化、决策可追溯,填补国产系统在管理逻辑标准化与治理能力上的短板,推动低代码平台从“界面工具”向“企业决策中枢”跃升,迈向国际先进水平。
|
3月前
|
机器学习/深度学习 分布式计算 算法
规则引擎开发现在已经演化成算法引擎了
规则引擎是一种基于专家知识的程序,用于解决复杂决策问题。它通过条件与动作的匹配,实现自动化判断,广泛应用于金融、电商等领域。核心功能包括规则管理、推理算法(如Rete算法)及决策模型,如DMN标准,提升了建模能力与执行效率。
|
8月前
|
缓存 运维 安全
官网突然“涉黄”,一场安全漏洞引发的品牌危机
流量劫持是一种常见的黑帽SEO手段,攻击者通过技术手段将用户访问请求重定向到非法网站以获取非法收益。然而,这仅仅是攻击的表象,背后可能隐藏着更大的威胁。一旦攻击者通过漏洞上传Webshell并控制服务器,他们很可能以此为跳板,进一步渗透企业内部网络,窃取敏感数据,例如客户信息、研发图纸或其他关键业务数据。
|
4月前
|
数据采集 人工智能 监控
快手电商 API 接口:快手平台电商活动参与度深度分析
快手电商API助力商家深度分析活动参与度,通过实时数据监控与用户行为分析,优化营销策略,提升转化率和用户粘性,实现智能化电商运营。
316 0
|
9月前
|
人工智能 运维 安全
AI大模型运维开发探索第四篇:智能体分阶段演进路线
本文探讨了智能体工程的演进历程,从最初的思维链(智能体1.0)到实例化智能体(智能体2.0),再到结构化智能体(智能体3.0),最终展望了自演进智能体(智能体4.0)。文章详细分析了各阶段遇到的问题及解决策略,如工具调用可靠性、推理能力提升等,并引入了大模型中间件的概念以优化业务平台与工具间的协调。此外,文中还提到了RunnableHub开源项目,为读者提供了实际落地的参考方案。通过不断迭代,智能体逐渐具备更强的适应性和解决问题的能力,展现了未来AI发展的潜力。
|
3月前
|
机器学习/深度学习 人工智能 数据可视化
一文看懂决策引擎平台必备功能都有哪些
Together规则引擎是一款决策智能平台,旨在帮助企业高效管理、执行和部署半自动及全自动决策。它融合业务规则、数据分析、机器学习与流程自动化技术,支持多场景智能决策,助力企业提升运营效率与商业价值。