免责声明:我不使用函数式语言;只是尝试理解FP的某些部分。
谷歌建议查阅文章,其中使用带有lambda的一阶函数可以提供与策略模式类似的功能。
然而,我们需要匹配数据和相应的lambda。使用面向对象设计,这是通过虚方法表(VMT)自动完成的,即类型本身携带了需要推断执行流程所需的重要信息,使得添加新行为变得容易(开闭原则):继承和覆盖。旧代码保持不变。函数式模式匹配在这方面似乎是静态的,并且不允许这种动态。
当然,可以编写可配置的匹配行为来选择基于给定数据的lambda,但这不是OOP开箱即用的吗?
谷歌建议查阅文章,其中使用带有lambda的一阶函数可以提供与策略模式类似的功能。
然而,我们需要匹配数据和相应的lambda。使用面向对象设计,这是通过虚方法表(VMT)自动完成的,即类型本身携带了需要推断执行流程所需的重要信息,使得添加新行为变得容易(开闭原则):继承和覆盖。旧代码保持不变。函数式模式匹配在这方面似乎是静态的,并且不允许这种动态。
当然,可以编写可配置的匹配行为来选择基于给定数据的lambda,但这不是OOP开箱即用的吗?