声明性编程最好解决哪些具体问题?

时间:2012-06-27 05:18:59

标签: programming-languages declarative paradigms

我理解声明性语言必须提供什么,但我还没有联系到为什么我会使用它们。例如,我不明白为什么描述一个问题比用一种命令式语言编写一个已经理解的问题的解决方案更有利(副作用不能承受)。

这是讨论什么是在声明性语言中成为一个好的应用程序。我只想了解情况和任何常见的,特定的项目要求,这会使程序员说“我们真的应该使用声明性语言”。

1 个答案:

答案 0 :(得分:2)

根据经验,我认为当存在多种策略来实现一个目标时,声明性编程才有意义。声明性地编程什么而不是如何让解析器/编译器/运行时确定哪种策略是最好的 - 它为您优化了执行。

声明性语言和优化的两个例子:

  • 正则表达式 - 你真的想打扰快速执行所需的底层DFA,NDFA吗?
  • SQL查询 - DBMS具有统计信息和缓存,可以(希望)找出最佳执行计划

@verisimilitude提供的链接值得一读。