问题标签 [lisp]
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.
sql - 数据库和函数式编程有矛盾吗?
我从事网络开发已经有一段时间了,最近开始学习一些函数式编程。像其他人一样,我在将这些概念中的许多概念应用于我的专业工作时遇到了一些重大麻烦。对我来说,造成这种情况的主要原因是我看到 FP 保持无状态的目标之间的冲突似乎与我所做的大多数 Web 开发工作都与非常以数据为中心的数据库密切相关这一事实相矛盾。
让我成为 OOP 方面更高效的开发人员的一件事是发现了对象关系映射器,例如 .Net 的 MyGeneration d00dads、perl 的 Class::DBI、ruby 的 ActiveRecord 等。这让我远离从整天编写插入和选择语句,到专注于将数据作为对象轻松处理。当然,当需要 SQL 查询的功能时,我仍然可以编写它们,但除此之外,它在幕后被很好地抽象出来了。
现在,转向函数式编程,似乎许多 FP Web 框架(如 Links)需要编写大量样板 sql 代码,如本例所示。Weblocks 似乎好一点,但它似乎使用一种 OOP 模型来处理数据,并且仍然需要为数据库中的每个表手动编写代码,如本例所示。我想您使用一些代码生成来编写这些映射函数,但这似乎绝对不像lisp。
(请注意,我没有非常仔细地研究过 Weblocks 或 Links,我可能只是误解了它们的使用方式)。
所以问题是,对于 Web 应用程序的数据库访问部分(我相信它相当大),或其他需要与 sql 数据库接口的开发,我们似乎被迫走以下路径之一:
- 不要使用函数式编程
- 以令人讨厌的、非抽象的方式访问数据,包括手动编写大量 SQL 或类似 SQL 的代码 ala Links
- 强制我们的函数式语言进入伪 OOP 范式,从而消除真正函数式编程的一些优雅和稳定性。
显然,这些选项似乎都不理想。是否找到了规避这些问题的方法?这里真的有一个问题吗?
注意:我个人最熟悉 FP 方面的 LISP,所以如果你想给出任何例子并了解多种 FP 语言,lisp 可能是首选语言
PS:对于特定于 Web 开发其他方面的问题,请参阅此问题。
java-me - J2ME 口齿不清?
如果存在运行在 J2ME 上的 lisp,那么在移动设备(而不是为移动设备)上编程似乎会更容易。
你知道任何(最好是开源的)lisp/smalltalk 应用程序吗?我在网上搜索,但找不到有效的 J2ME lisp。移植到J2ME有那么难吗?
谢谢
lisp - 可视化编程工具
我需要用于图形表示程序中工作流程的工具(例如用图形表示描述电子电路)。表示必须如下所示:函数是框,框之间的箭头是“消息”。像这样:
替代文字 http://img372.imageshack.us/img372/8471/functionsqv0.png
此图显示如下: (c (a) (b))
其中 c() 的参数命名为 d 和 e。在 C 上它将是
所以我认为我需要这样的工具来操作和视觉表示 s 表达式:
或者
它不是关于链表,而是关于函数之间的逻辑连接。
该工具只需从图形生成文本表示。
好吧,我在 Wiki 页面上找到了很多关于“可视化编程”和“图形编程”等的内容。大多数描述的工具都很酷,但有些复杂。而且这个列表很长,所以要花很多时间来测试所有这些。所以我需要一个真实的,活着的人的意见。
要求是:
- 自由
- 简单的
- 可以导出到至少一种真实语言,如 XML 或 C++ 或 LISP 或任何其他语言。
如果这个工具是可配置的,那就太好了。
我喜欢 FlowDesigner 工具:它似乎几乎是我需要的东西,但它无法导出到任何语言……唉。
UPD:我提到的 wiki 页面:图形编程
UPD2:好吧,我决定编写自己的工具...
performance - Elisp 在 Windows 和 Linux 上的性能
我有以下简单的 elisp 函数;第一个从当前段落中删除填充中断,第二个循环遍历当前文档,依次将第一个应用于每个段落,实际上从文档中删除所有单个换行符。它在我使用 emacs 22.3 的低规格 Puppy Linux 机器上运行得很快(600 页 Thomas Aquinas 需要 10 秒),但是当我使用 emacs 21.3 使用功能强大的 Windows XP 机器时,它需要将近一个小时才能完成相同的文档。我该怎么做才能让它在带有 emacs 21.3 的 Windows 机器上运行?
:
原谅我可怜的elisp;我在学习 Lisp 并开始使用 emacs 的力量时玩得很开心,但我还是新手。
emacs - 如何计算 Emacs 中打开的缓冲区/文件的数量?
时不时地,当我打算按 Cx 或 Cc 时,我不小心在 Emacs 中按了 Cx Cc。当然,这会在没有确认的情况下关闭所有打开的帧和缓冲区。我知道我可以让 Emacs 提示“你确定要退出吗?”,但我不想一直这样做,这会很烦人。我只是希望它在打开超过 N 个文件(或缓冲区)时执行此操作。
所以我想将 Cx Cc 绑定到一个函数,如下所示:
但我不知道如何获取打开缓冲区的数量(或打开的帧数,或打开的文件数等)。
lisp - 与项目 euler 72 (lisp) 有关的奇怪问题
我认识到输出中有一个明显的模式,我只是想知道为什么当我尝试运行任何 > 52 的东西时 lispbox 的 REPL 会中止。此外,任何关于改进代码的建议都非常受欢迎。^-^
我打电话时得到的一切
(count-reduced-fractions 53 53 0)
是
;评估中止
这对我来说没有多大意义,考虑到它会在低于此的所有数字上运行(并返回准确的结果),而且我可以(如果我愿意)在我的头脑中、纸上或一行上做 53一次在 lisp 中。我什至测试了许多大于 53 的不同数字,以确保它不是特定于 53。没有任何效果。
emacs - 是什么让你想学习 Common Lisp?你想从中得到什么?
我正在为刚接触 Common Lisp 的人开发一个工具包(类似于 Live-CD Lisp-in-a-Box),我想确保它得到广泛的满足。Lisp 有什么吸引你的地方?你需要做什么/做了/会什么让你开始并保持你的兴趣?
到目前为止我所拥有的:SBCL 10.22、Emacs 22.3、SLIME 和 LTK 捆绑在一起并配置在完全引导到 RAM 的 Linux live-CD 上。
我现在已经发布了这个结果;它可在Thnake 网站上找到。
lisp - Clojure 中的“不知道如何从:符号创建 ISeq”错误
我有以下 Clojure 代码,但我不确定它为什么不起作用:
(代码翻译自 Paul Graham 的ANSI Common Lisp书。)
当我运行它时,我收到以下错误:
我在这里做错了什么?
lisp - 在 Notepad++ 中编译 lisp/scheme
我现在非常喜欢 lisp,不幸的是我只能在 Windows 上编写代码。是否可以让 Notepad++ 负责解释我的脚本,并在编译器窗口中显示输出?
如果是,最好使用哪种解释器?
谢谢!
emacs - Emacs Lisp 函数中的(交互式)是什么意思?
Emacs Lisp 函数通常这样开始:
“(交互式)”有什么作用?