functional-programming - 是否有一种语言既可以完成 SQL 的任务,又可以进行通用编程?

标签 functional-programming relational-database programming-languages

我想实现一些游戏逻辑,对象之间有很多关系,类似于关系数据库或图形数据库。

我不知道任何语言可以让我做到:

  • 强大、安全的关系映射,具有不可为空的链接、级联删除等。
  • 实现游戏逻辑
  • 编写纯函数
  • 网络
  • 如果可能的话,提供不错的数据访问性能。 (比如内存中的SQLlite也是可以接受的)

我想避免使用两种语言,并使用一些相当复杂的 ORM 在两种语言之间映射数据。相反,我想要一种能够实现所有这些功能的语言。

显然,有SQL。但我不知道 SQL 的任何实现:

  • 除了回复 SQL 请求之外,还能够进行联网
  • 具有 F# 这样的语言的许多功能吗? SQL 能够进行函数式编程,但是 F# 功能(例如管道、部分应用程序、模式匹配、基本类型的强类型)又如何呢?

我会接受部分替代解决方案。

请注意,我不需要实际的持久性存储,只需要像关系数据库甚至图形数据库这样的对象关系。

最佳答案

答案是否定的,在您设置的范围内。

第三声明的目的是定义一种称为 D 的语言,它具有通用编程语言的特性,但实现了专门针对数据库管理的类型系统和关系特性。如果完全实现,它可能会取代 SQL,但不会取代常见的 GP 语言,例如 C/C++、Java 或 C#。

当与适当选择的库结合使用时,有许多 GP 语言可以完成您建议的所有操作。为了最接近您所描述的内容,您应该坚持使用适合您其他需求的任何语言,并向其添加使用 API 而不是 SQL 的内存中进程内数据库。几乎根据定义,这意味着您应该寻找“NoSQL”数据库。有很多。

这里提到了您的问题:https://forum.thethirdmanifesto.com/forum/topic/is-there-a-language-that-does-both-what-sql-does-and-general-purpose-programming/ 。您可能会发现后续的讨论很有启发。

关于functional-programming - 是否有一种语言既可以完成 SQL 的任务,又可以进行通用编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65045060/

相关文章:

programming-languages - 为什么 'if' 语句被认为是邪恶的?

javascript - 带有嵌套 Promise 的函数式编程

functional-programming - 如何在标准 ML 中打印多态值?

mysql - 数据库关系 - 一对一也有一对多

java - 规范化数据库有哪些优点?

如果一种编程语言具有数据类型但没有运算符重载,它还能被称为 "typed"吗?

Java 8 方法引用特定类型的任意对象的实例方法

scala - Scala 有函数应用运算符吗?

mysql - 使用 SELECT 值更新 SQL 列

javascript - 为什么 'this' 分辨率在 JavaScript 中如此特殊?