只需阅读(德语)关于模型驱动的软件开发(MDSD)的Wiki-Article。总结维基定义:
因为我知道并使用高阶函数编程,所以我很纳闷,而我的实际问题是:
MDSD只是疯狂地试图将高级功能编程所提供的强大功能(一部分)注入(inject)固有地缺乏这些功能的编程语言/范式中吗?
(或者我是否误解了,甚至可以将MDSD用于实质上支持高阶函数编程吗?)
最佳答案
我宁愿换个角度来看它。 OOP,MDSD,TDD,域驱动设计以及许多其他范式就是...范式。他们是看待人们开发的软件开发任务的方法,这些任务是为了解决他们认为比以前任何东西都缺少的事情。事实证明,函数式编程具有相同的作用-它赋予程序员抽象的能力,而这种能力在没有一流功能的语言中就不那么优雅了。因此,我不会说MDSD是一次绝望的尝试,为非功能语言提供功能特性,就像我说的是人们从不同的角度来面对相同的问题一样。
对this最近的SO问题的某些答案有不同的说法。 ShreevatsaR表示:“几乎可以使用宏执行的任何事情都可以使用高阶函数执行”。马蒂亚斯·本卡德(Matthias Benkard)说:“宏的缺乏可以通过更精细的……单子(monad)和箭头之类的概念得到缓解。”其他评论也呼应相同的主题。您提到MDSD的宗旨之一是生成器。宏是编译时生成器。因此,我可以将他们的陈述翻译为一种论点,即MDSD在功能语言中本来就很容易。