2

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

然而,我目前在 python 中编程,并且在这样做时我倾向于强制思考。这就像我的图形设计问题:我知道我喜欢在最终产品中看到什么,但不知道如何组装它。

我如何构造事物以使代码具有声明性?如果解决方案要具有可识别的“声明性”,应采取哪些初始步骤?

函数式、声明式和命令式编程 我刚刚读过这篇文章,带来了一些见解。

不过还不够,不能准确地说出来,我的困惑:(

编辑:话来了:为声明给出的示例总是根据其他一些高级事物给出:

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

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

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

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

4

1 回答 1

2

使用函数式语言时,请使用函数式风格;使用命令式语言时,请使用命令式风格;使用声明式语言时,请使用声明式风格。

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

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

于 2010-12-12T04:59:18.967 回答