新闻  |   论坛  |   博客  |   在线研讨会
VM600 MPC4 程序模块化的机制关注点分离
15359029662 | 2023-03-20 18:49:16    阅读:63   发布文章

VM600 MPC4 程序模块化的机制关注点分离

VM600 MPC4 程序模块化的机制关注点分离

因为在列表的第三个元素中被零除,所以在严格评估下失败。在惰性求值下,length函数返回值4(即列表中的项目数),因为对它求值并不试图对组成列表的项求值。简而言之,严格求值总是在调用函数之前完全求值函数参数。惰性计算不计算函数参数,除非需要它们的值来计算函数调用本身。

函数式语言中惰性求值的通常实现策略是图形简化[64]在几种纯函数式语言中,默认情况下使用惰性求值,包括天卫五,干净的,以及哈斯克尔

休斯1984主张将惰性评估作为一种通过以下方式提高程序模块化的机制关注点分离,通过简化数据流生产者和消费者的独立实现。[2]Launchbury 1993描述了惰性求值引入的一些困难,特别是在分析程序的存储需求时,并提出了一个操作语义学以帮助这种分析。[65]Harper 2009提出在同一种语言中同时包含严格和懒惰评估,使用语言的类型系统来区分它们。[66]

类型系统[编辑]

特别是自从发展了辛德雷-米尔纳型推理在20世纪70年代,函数式编程语言倾向于使用类型化λ演算,在编译时拒绝所有无效的程序,并冒着假阳性误差,而不是无类型lambda演算,它在编译时接受所有有效的程序并承担风险假阴性误差,用于Lisp及其变体(如计划),因为当信息足以不拒绝有效程序时,它们在运行时拒绝所有无效程序。的使用代数数据类型使复杂数据结构的操作变得方便;强编译时类型检查的出现使得程序在没有其他可靠性技术的情况下更加可靠,例如测试驱动开发,而类型推理在大多数情况下,程序员无需向编译器手动声明类型。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客