如何以声明式方式编程?

时间:2010-12-12 03:59:45

标签: declarative-programming

我很享受puppet声明模型。我想尝试将更多内容合并到我的代码中。

然而,我目前正在使用python进行编程,而且我倾向于在这样做时进行必要的思考。这就像我的平面设计问题:我知道我喜欢在最终产品中看到什么,但不知道如何组装它。

如何构建事物以使代码具有声明性?如果解决方案可以被识别为“声明性的”,那么采取了哪些初始步骤?

Functional, Declarative, and Imperative Programming我刚读过这篇文章,带来了一些见解。

虽然不够,但不能完全说出来,我的困惑:(

编辑:言语已经到来:声明的例子总是以其他高级别的东西给出:

Regexen是声明性的,当然,但你用C语言制作引擎。

Make是声明性的,当然但它是用C语言编写的。

Puppet mainifests当然是声明性的,但Ruby代码不是。

所以在什么时候我说:“好的,这是方法,现在我可以开始声明部分了吗?”

1 个答案:

答案 0 :(得分:2)

在函数式语言中,以函数式写入,在命令式语言中写入命令式样式时,以及在声明性语言中,以声明式样式编写。

如上所述(不包括允许的所有“交叉风格”),当您使用您用语言风格书写的语言书写时。在以“命令式”或“功能性”语言“声明性地”编写的情况下,这通常会分解为编写声明性DSL和/或API而不实际更改用于公开(或甚至粘合)所述声明性友好的基本样式DSL / API。

例如,make(或任何数量的XML语言,如ant)只是声明性的DSL(有些模糊)。主持语言并不重要。这可以推广到几乎所有图灵完整主机语言。