是否有纯声明的通用编程语言?

Mat*_*att 5 functional-programming declarative logic-programming

我一直在研究声明性语言,似乎声明只是逻辑和函数语言的总称.还是我错了?是否有任何通用的声明性编程语言不能归类为功能或逻辑(al),只是"声明"?

Eni*_*ity 3

声明性语言要求您为想要发生的事情编写代码,而不是在命令式语言中编写如何完成计算的代码。

一般来说,这意味着声明性语言不允许副作用,而命令式语言几乎需要带有副作用的编码。

为了使通用语言成为通用语言,它们需要能够编写副作用代码。因此,这使得他们很难发表声明。

像 F# 这样的语言在函数式编程方面拥有坚实的基础,但也有允许面向对象编程和副作用的结构。这使得 F# 成为一种通用语言,但它是通过允许命令式编码与声明式编码混合来实现的。

尽管并非完全不可能,但我怀疑仅仅根据定义就不存在“纯声明性”通用编程语言。

  • @Matt 函数式和逻辑编程语言的关键是每种语言都基于形式模型,该模型具有用于寻找解决方案的有效算法。那么接下来程序员在模型中指定程序,语言实现负责寻找解决方案。因此,如果您能找到一种不太像 lambda 演算或谓词演算的合适形式主义,那么您也许可以将基于该形式主义的语言称为声明性语言,而不是函数式或逻辑性语言。我不知道有这样的形式主义,但我不知道为什么不应该再有这样的形式主义了。 (2认同)