问题标签 [declarative-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
259 浏览

scala - 在我的算法中替换命令式 PriorityQueue

我目前有一个使用 scala.collection.mutable.PriorityQueue 以特定顺序组合元素的方法。例如,代码看起来有点像这样:

代码按照编写的方式工作,但必须非常必要。我曾想过使用 SortedSet 而不是 PriorityQueue,但我的尝试让这个过程看起来更加混乱。什么是做我想做的事情的更明确、更简洁的方式?

0 投票
1 回答
81 浏览

programming-languages - 如何描述一种忽略暗示而只描述行为的语言

我想问人们如何描述一种基本上描述程序行为而不是实现的编程语言 - 即。一种忽略实现问题的语言(例如,只有一个类或函数,而其他语言可能具有不同的类或函数,它们以不同的方式做同样的事情),而是完全依赖于自动优化。

“声明性”是正确的术语吗?也许是“故意的”?“目标导向”是一个似乎也具有相似含义的术语。也许是别的东西。我想知道,因为我正在设计的一种叫做 Lima 的语言符合这个描述(http://www.btetrud.com/Lima/Lima-Documentation.html)。我知道 Stack Overflow 喜欢有答案的东西,所以答案会交给评论最有见地的人。

我也想知道人们认为这个想法与保罗格雷厄姆的百年语言想法有多接近:http: //www.paulgraham.com/hundred.html。我喜欢他建议如何将字符串视为字符列表并摆脱数组以支持更通用的“哈希表”(即关联数组),这是我在利马第一次构思它时所做的事情。

lima 背后的基本思想是:

  1. 基于值的编程——摆脱任何关心值是什么“类型”的逻辑。Lima 中没有类型,值只是值。语言中仍然存在类型,但只是为了限制变量可以采用哪些值——它们不能更改要调用的多方法,也不能指定值的内存占用。

  2. 描述性编程 - 我在上面描述的关于一种编程语言,它不需要(实际上是能力)在代码本身中优化您的代码(而是通过自动优化器完成优化)

  3. 总的语言可扩展性——用语言本身编写语言中的任何结构的能力(例如,不仅能够重写“sin”函数,还能够重写“if”语句、循环语句,并创建可用的自定义 DSL在语言和其他 DSL 中。

0 投票
2 回答
3896 浏览

apache-flex - 为什么 mxml 不支持组件构造函数?

为什么 Flex 框架的 mxml 语言不支持组件的构造函数或接受组件的构造函数参数?据我所知,如果它采用构造函数参数,则无法在 mxml 中声明 ActionScript 对象。我很好奇原因。它是 Adob​​e 的设计选择还是与声明性语言的工作方式有关?例如,为什么不允许:

0 投票
1 回答
505 浏览

oop - 面向对象语言是否比声明式编程语言更强大

面向对象的语言比声明式编程语言更强大吗?我所说的强大是指他们能够解决任何用声明性编程语言编写的程序都不能解决的一类问题吗?

个人不这么认为。存在一系列问题,使用面向对象语言编写程序更容易,但我认为这些问题也可以使用声明性语言解决(尽管可能更难)

想听听更多关于这个的看法。

0 投票
5 回答
26753 浏览

functional-programming - 函数式编程与声明式编程与命令式编程

我已经习惯了命令式编程,这是告诉计算机逐步执行程序以获得最终结果的常用方法。另一方面,声明式编程只是传递输入并期望输出,而不说明它是如何完成的过程。我感到困惑的是函数式编程。我知道函数式编程是一种编程范式,它将计算视为对数学函数的评估,并避免状态和可变数据,并且不是一种声明性语言。但是,我仍然无法理解它是如何工作的。

让我们举一个执行斐波那契数列的例子。

命令式编程:

声明式编程:

功能程序如何工作?

另外,如果我的定义错误,请纠正我。请随意发表评论..

0 投票
5 回答
2069 浏览

haskell - 声明性语言

我正在阅读一篇关于声明式编程语言的文章。

如果我不了解这种类型/范式的编程语言的质量并且它与命令式语言形成对比,我是否应该只阅读这种类型的编程语言(如 Haskell)的编程,然后再阅读那篇文章?

0 投票
2 回答
50 浏览

prolog - 自定义约束的结合

我已经定义了一些这样的自定义约束:

因此,我需要它们的这种逻辑结合。(如果一个约束失败,结果应该失败)

我正在寻找一种更方便的方法来避免对所有约束进行这种显式编码。

0 投票
1 回答
115 浏览

ios - 将 NSString 转换为 Objective-C 控件

我想在 IOS(objective-c)上重现 WPF 中的声明式编程。

在 WPF 中,我可以使用这样的控件:

确切的代码是:

这可以在objective-C(IOS 7)上以类似的方式完成吗?请就如何实现这一点提供示例或提示。

有没有可以在 IOS7 中使用的实现复合模式的库?

编辑:这是一个真实的问题,如果可以的话,我想在一个真实的项目中实现它。

编辑 2:我想将 NSString 转换为 xib 文件并将其显示为视图中的控件?

*编辑3:

我收到来自服务器的响应,JSON格式如下:

在实现文件中被解释为:

0 投票
3 回答
2662 浏览

prolog - Prolog 'is/2' 谓词实现

'is/2' Prolog 谓词是如何实现的?我知道

相当于

但是谓词是使用命令式编程实现的吗?换句话说,实现是否等同于以下 C 代码?

还是使用声明式编程和其他谓词来实现?

0 投票
5 回答
12016 浏览

c - C是命令式还是声明式编程语言

知道命令式编程和声明式编程之间的区别是非常令人困惑的,任何人都可以用现实世界的术语来解释两者之间的区别吗?

请澄清 C 是命令式语言还是声明式语言?