当前位置: 首页 > news >正文

个人制作网站小程序制作免费

个人制作网站,小程序制作免费,网站建设毕业设计开题报告,网站静态化 好处dmn是大脑中哪个区域在本文中#xff0c;我想分享有关DMN中递归支持的有趣见解#xff0c;并重点介绍FEEL语言的特定属性如何使功能性编程结构能够在DMN中建模。 我们将从一个基本示例开始#xff0c;以演示FEEL语言和DMN构造的“商业友好”性质如何使我们能够解决一个通常… dmn是大脑中哪个区域 在本文中我想分享有关DMN中递归支持的有趣见解并重点介绍FEEL语言的特定属性如何使功能性编程结构能够在DMN中建模。 我们将从一个基本示例开始以演示FEEL语言和DMN构造的“商业友好”性质如何使我们能够解决一个通常不愉快的问题递归函数的定义。 然后我们将在FP土地中冒险在FEEL / DMN的Gradle中我们将欣赏功能构造最好的生物之一Y Combinator。 最后我们将发现自己再次被问到一个著名的问题 使用纯工程方法让我们立即深入研究问题 基本递归示例 Drools DMN开源引擎允许在DMN商业知识模型节点中提供递归支持。 这使递归函数的建模非常容易 这是在DMN中为递归函数建模时的推荐方法 允许函数以其名称进行调用。 让我们看一个简单的示例在DMN中对阶乘函数建模。 我们可以使用Kogito DMN编辑器并如下定义DRD 使用“事实”业务知识模型简称BKM节点以递归方式定义实际的阶乘函数为 我们可以注意到该函数像其他任何普通函数一样调用自身 递归函数唯一的区别是它被定义为DMN Boxed Expression的一部分 该函数的名称由BKM节点使用框式表达式构造“ fac”定义然后该函数的主体进行引用并将其自身作为FEEL表达式“ facn-1”的一部分进行调用。 我们可以使用此BKM来计算输入数据节点传递的实际结果作为“计算阶乘”决策的一部分如下所示 这可以很好地工作并给出预期的结果 { 我的电话3 fac函数facn 计算阶乘6 } 关于柯里 DMN以及更重要的是FEEL语言允许定义和调用咖喱函数。 这使我们可以在FEEL中编写如下内容 {ffunctionafunctionba brf12} 哪里 我们定义了一个touchcontext有2个条目 第一个条目名为“ f”并定义了一个咖喱函数一个参数“ a”的函数一旦被调用将返回一个参数“ b”的函数一旦被调用将返回a b的和 后一个名为“ r”的条目以a 1和b 2调用咖喱函数。 尽管这可能是看起来很奇怪的FEEL表达式但是一旦执行r 3我们就不会感到惊讶。 我们可以使用DMN Boxed Expression构造等效地做 这是一个名为“咖喱和”的BKM节点 DMN可调用一个参数“ a”一旦被调用将返回一个参数“ b”的函数该参数一旦被调用将返回a b的和。 同样一旦执行我们就不会感到惊讶 咖喱和12 3 Y组合器无递归支持的递归 让我们回头看一下前面的递归函数示例。 我们忽略了以下事实在DMN中函数实际上是否可以通过其名称进行调用DMN规范并未明确支持此功能但也未明确禁止它。 换句话说没有正式指定递归支持。 如果我们仍然需要定义递归函数但又发现道路仍在建设中缺少正式的递归支持该怎么办 我们可以使用一种称为“ Y Combinator ”的功能设备该设备允许匿名函数实现递归而不必依靠自身不存在的名称进行自我调用。 让我们看一个例子 我们可以在DMN中定义Y组合器如下所示 它可能是一个看起来很奇怪的函数让我们假设它是为我们定义的我们可以使用它。 我们可以使用它来重新定义阶乘计算如下所示 我们可以注意到“ fac”函数定义的主体在总体上是相同的 但是它不再是一个通过名称调用自身的函数在函数主体中没有对“ fac…”的调用的痕迹 自然仍然会有某种形式的递归发生但是这次是利用闭包范围内的参数名称“ f”。 结果按预期工作 fac3 6 我们可以看一下另一个示例该示例使用DMN中的Y组合器定义斐波那契序列 我们再次注意到函数体中没有对“ fib…”的调用但是由于使用了Y组合器因此可以执行斐波那契数列的递归计算。 再次结果按预期工作 fib5 [1、2、3、5] 为了获得更多乐趣我们可以使用DMN Boxed Expression形式重新定义Y组合器。 这是一个有趣的练习以了解如何在其盒装变量中应用闭包。 Y组合器的定义可以重构为 这将再次产生相同的预期和正确结果。 对于额外额外的乐趣我们可以在单个FEEL表达式中再次重新定义Y组合器以计算例如4的阶乘 {YfunctionffunctionxxxfunctionyffunctionxyyxfacYfunctionffunctionn如果n 1则n * fn-1否则1fac4fac4} .fac4 结果不出所料24。 结论 在本文中我们看到了DMN中递归的基本示例并且如何在引擎中利用递归支持非常简单。 支持引擎递归支持是我们建议实现递归DMN的方法给函数命名并在函数主体中使用该名称来调用自身。 在示例中我们将函数命名为“ fac”然后在函数本身的主体中调用了“ fac…”。 这种方法非常实用易于在DMN中建模并且效果很好。 我们还看到了DMN和FEEL如何确实支持咖喱函数定义和调用。 FEEL也是一种功能语言 所有这些属性使我们能够在DMN中定义并使用Y Combinator这是一种无需递归支持即可实现递归的功能性设备 我个人发现这些练习对于在DMN中应用功能编程概念非常有趣同时确保引擎按预期运行。 我要特别感谢我的同事Edoardo Vacchi和Luca Molteni在讨论Y组合器和Currying函数时所给予的支持。 对DMN感兴趣 如果您以前不了解DMN那么您会发现这篇文章很有趣但是想对DMN标准进行温和介绍我们就DMN提供了正确的速成课程您可以通过以下网址免费获得 http://learn-dmn-in-15-minutes.com 翻译自: https://www.javacodegeeks.com/2020/04/functional-programming-in-dmn-it-feels-like-recursing-my-university-studies-again.htmldmn是大脑中哪个区域
http://www.huolong8.cn/news/191792/

相关文章:

  • 如何夸奖一个网站做的好微信小程序开发教程从零开始
  • 建设电子商务网站考核试卷wordpress 仿 主题
  • 旅游网站开发说明书如何建设网站视频
  • 搜索引擎怎么收录网站深圳市网站建设制作设计品牌
  • 网站建设与维护就业怎么样足球世界排名前十
  • 群晖 做网站怎么提高网站收录
  • 设计网站建设方案汕头
  • 建站之星app找平台推广
  • 深圳推荐企业网站制作维护微商分销商城
  • 方城企业网站制作哪家好wordpress没有安装主题
  • 引航博景做的网站公司装修费用可以一次性入账吗
  • 方法网站目录企业网站模板下载软件
  • seo整站优化外包哪家好wordpress 调用缩略图
  • 网站挂马黑链检测清除工具一般网站系统并发量
  • 公司网站建设工作计划重庆网站建设模板
  • 易语言怎么做网站网络优化包括
  • 河津网站制作铁岭做网站包括哪些
  • 网站加载速度一个网站放两个vps
  • 国产做爰网站青岛网站建设公司在哪
  • 假的建设银行网站淘宝关键词排名查询工具
  • 网站主页建立 优帮云陕西网站开发联系电话
  • 江西东乡网站建设网站开发外贸
  • 唐山医疗网站建设新吴区推荐做网站价格
  • 安阳网站制作 网络服务wordpress分类目录分页显示
  • 游戏运营备案官方网站中国广播电视总台官网
  • 网站风格定位怎么写升级wordpress5
  • 泰安网站营销推广上海暂停娱乐场所营业通知
  • 比较好的网站建设论坛关于宠物的网站模板
  • 建设地产网站公司建网站空间
  • 取消工法建设部网站深圳网站设计公司排行