functional-programming - 是否有一种语言可以同时执行 SQL 和通用编程?
问题描述
我想用类似于关系数据库或图形数据库的对象之间的很多关系来实现一些游戏逻辑。
我不知道任何语言都可以让我这样做:
- 具有不可空链接、级联删除等的强大、安全的关系映射。
- 实现游戏逻辑
- 编写纯函数
- 联网
- 如果可能的话,一个不错的数据访问性能。(就像内存中的 SQLlite 是可以接受的)
我想避免使用 2 种语言,并使用一些非常复杂的 ORM 在两者之间映射数据。相反,我想要一种能够满足所有这些要求的语言。
显然,有 SQL。但我不知道 SQL 的任何实现:
- 除了回复 SQL 请求之外,还能够联网
- 具有像 F# 这样的语言的许多特性吗?SQL 能够进行函数式编程,但 F# 特性,如管道、部分应用程序、模式匹配、原始类型上的强类型呢?
我将接受部分替代解决方案。
请注意,我不需要实际的持久性存储,只需要像关系数据库甚至图形数据库这样的对象关系。
解决方案
答案是否定的,在您设定的范围内。
The Third Manifesto 的目的是定义一种称为 D 的语言,它具有通用编程语言的特性,但实现了专门针对数据库管理的类型系统和关系特性。如果完全实现,它可能会取代 SQL,但不会取代常见的 GP 语言,例如 C/C++、Java 或 C#。
There are many GP languages which can do all the things you propose, when used in conjunction with suitably chosen libraries. 为了与您描述的内容最接近,您应该坚持使用适合您其他需求的任何语言,并向其中添加一个使用 API 而不是 SQL 的内存进程数据库。几乎按照定义,这意味着您应该寻找“NoSQL”数据库。有许多。
您的问题在这里提到:https ://forum.thethirdmanifesto.com/forum/topic/is-there-a-language-that-does-both-what-sql-does-and-general-purpose-programming/ 。您可能会发现随后的讨论很有启发性。
推荐阅读
- c# - 将 ChangeTracker 注入构造函数
- python - urllib.error.HTTPError:HTTP 错误 401:从网络下载 Zip 文件时未经授权
- python - 如何格式化字符串元组?
- angular - Angular 6:为什么我不能在不丢失 ChildService 功能的情况下扩展服务?
- node.js - Mongoose find - 使用返回的数据并将其添加到变量中
- spring - Spring Reactive MongoDB不保存文档
- java - 文件到 MultipartFile 抛出 NullPointerException
- travis-ci - 测试运行完成后一秒 Jest 没有退出(使用 Nuxt 和 Jest)
- django - 部署到 Appengine 标准环境后应用程序无法运行
- lotus-domino - 如何从 TYPE_MIME_PART 项目中读取数据?