phy*_*nfo 6 haskell functional-programming model-driven-development
只需阅读关于模型驱动软件开发(MDSD)的(德国)Wiki文章.总结Wiki定义:
因为我知道并使用高阶函数式编程,我想知道,我的实际问题是:MDSD是否只是一种绝望的尝试,将高阶函数式编程提供的强大功能注入(部分)编程语言/范例本身缺乏那些功能?
(或者我误解了MDSD甚至可以用来支持高阶函数编程吗?)
我更喜欢以相反的方式看待它.OOP,MDSD,TDD,域驱动设计以及其他许多范例都只是......范例.他们是研究人们开发的软件开发任务的方法,以解决他们认为在他们面前所缺乏的东西.事实证明,函数式编程可以做同样的事情 - 它为程序员提供了抽象的功能,这些功能在没有一流功能的语言中并不优雅.因此,我不会说MDSD是一种绝望的尝试,以提供非功能语言的功能特性,就像我说的那样,人们从不同的角度出现同样的问题.
这个最近的SO问题的一些答案有不同的说法.ShreevatsaR说,"几乎任何你可以使用宏执行高阶函数的宏".马蒂亚斯·本卡德(Matthias Benkard)说:"通过更复杂的概念,如单子和箭头,可以减轻宏的缺乏." 其他评论也反映了同一主题.你提到MDSD的一个原则是生成器.宏是编译时生成器.所以我会将他们的陈述翻译成MDSD在函数式语言中本身很容易的论点.