问题标签 [abcl]

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 投票
2 回答
1013 浏览

lisp - ABCL 编译和原语

有谁知道如何(或是否)可以使用 ABCL 将 Lisp 代码编译为 .class 文件并创建一个 main 方法,以便将整个东西打包成一个 .jar 文件并运行?

另外,有谁知道如何从 ABCL 代码访问原始 Java 类型?

0 投票
2 回答
1189 浏览

java - 你能用 ABCL 写一个 Java 类吗?

有没有办法用ABCL创建一个 Java 类(扩展另一个类)?

0 投票
1 回答
411 浏览

lisp - 武装熊常见的 lisp 有问题 - 从 repl 调用用户定义的类?

我对 lisp 很陌生,对 java 也很陌生。我正在用 Java 开发一个简单的游戏,我认为与游戏交互会很有趣,因为我正在通过 REPL 对其进行编码。我一直在关注 Practical Common Lisp,并且对基本的函数结构有所了解。我开始使用 armed bear common lisp——一个在 java 虚拟机上运行的实现——并且能够编写一些用于创建 guis 的基本函数,例如:

但是我不知道如何从 lisp 访问用户定义的类。整个实现似乎记录得很差,我发现很难从 lisp 中开始使用 java 特定的东西。例如,我有一个名为“Character”的编译字符类。但是当我调用 (jclass "Character") 时,我得到一个 "class not found" 错误。是否可以让 abcl 从 lisp 中了解我的课程?

0 投票
2 回答
1047 浏览

common-lisp - 从 ABCL 调用 freeling Java API

我正在尝试_ ABCL ( http://common-lisp.net/project/armedbear/ )。我按照 Freeling Java API 的 README 中的所有过程,使用 swig 编译 API。之后,我能够运行示例代码。

在这个 Analyzer.java 中,相关行是:

在 ABCL 中,我尝试过:

但我得到了错误:

有人有什么主意吗?Java 的 System.load 的 ABCL 有什么特殊问题吗?

0 投票
4 回答
447 浏览

java - 如何使用 Java 获取 ABCL 中的值

我正在搜索 API 以使用 Java 处理 JVM 中 Common Lisp 语言的 Armed Bear Common Lisp (ABCL) 实现中的值。

它在函数返回(仅)列表或字符串时起作用。

当它返回多个时,我只能获取第一个返回值。

我不知道如何获取其他值。

这是我的 test.lisp 文件:

我的Java代码是:

0 投票
3 回答
7716 浏览

clojure - 为什么不能在基于 JVM 的 Lisps 中优化尾调用?

主要问题:我认为尾调用优化 (TCO) 最重要的应用是将递归调用转换为循环(在递归调用具有特定形式的情况下)。更准确地说,当翻译成机器语言时,这通常会翻译成某种系列的跳跃。一些编译为本机代码(例如 SBCL)的 Common Lisp 和 Scheme 编译器可以识别尾递归代码并执行此转换。Clojure 和 ABCL 等基于 JVM 的 Lisps 很难做到这一点。JVM 是什么机器可以防止或使这变得困难?我不明白。JVM 显然没有循环问题。必须弄清楚如何进行 TCO 的是编译器,而不是它编译到的机器。

相关问题:Clojure可以将看似递归的代码转换为循环:如果程序员用关键字替换函数的尾调用,它就好像在执行 TCO recur。但是,如果可以让编译器识别尾调用(例如 SBCL 和 CCL 所做的),那么为什么 Clojure 编译器不能确定它应该以处理尾调用的方式处理尾调用recur

(对不起——这无疑是一个常见问题解答,我确信上面的评论表明我的无知,但我没有成功找到之前的问题。)

0 投票
2 回答
248 浏览

java - 运行使用 cl-cppre 的 ABCL 代码

参考我之前的问题, Executing a lisp function from Java 我能够使用 ABCL 从 Java 调用 lisp 代码。但问题是,现有的 lisp 代码使用 CL-PPCRE 包。我无法编译代码,因为它说“找不到 CL-PPCRE”。我尝试了不同的方法来添加该软件包,包括 1)如何编译使用 cl-ppcre 的 clisp 程序? 2) https://groups.google.com/forum/#!topic/cl-ppcre/juSfOhEDa1k

不工作!另一件事是,执行(编译文件 aima.asd)工作得非常好,尽管它也需要 cl-pprce

最终的java代码是

错误信息是

谁能帮我?

0 投票
3 回答
169 浏览

common-lisp - 在 Allegro CL 和 ABCL 中,我可以构造一个仅给出其类型名称的结构吗?

(make-instance 'struct-type)在大多数实现中,无论您是否为该类型定义了构造函数,都可以使用它来创建结构。这在 Allegro 或 ABCL 上不起作用,但这些实现仍然可以在读取时创建结构体#S(struct-type),这让我认为在将类型名称作为符号的情况下必须有其他方法在运行时构造它们。

0 投票
2 回答
446 浏览

installation - 如何在 Eclipse 中运行 Armed Bear Common Lisp?

我想学习 Common Lisp 并且我有一些 Java 经验。我听说 Armed Bear 是一种运行在 JVM 上的 CL 方言,因此我可以使用 Java 库。但我不知道如何安装它以便我可以做练习。

我可以在 Eclipse 中安装一个插件来运行 Common Lisp 代码吗?我已经在互联网上阅读过,并且没有任何指南可以做到这一点。

0 投票
2 回答
209 浏览

multithreading - 在 ABCL (Armed Bear) LISP 中如何创建后台子进程/后台线程?

如何在 ABCL 中生成背景(命名)子进程/线程?也就是说,我想生成子进程(或线程)以在后台运行,并将顶级评估留给其他处理。

使用 (apropos 'process/thread) 我发现了像下面列出的那些未记录的函数,但我无法弄清楚语法。我正在寻找要遵循/修改的运行示例代码。我似乎已经使用以下 make-process 函数创建了一个进程,但是当我尝试杀死它时出现错误,它在前台运行。ABCL 手册中没有关于 make-process 的条目。列出了 MAKE-THREAD,但未记录

ABCL 手册中列出的带有“未记录”名称的所有功能的文档/示例在哪里?(还有那些恰到好处的发现?)

作为一个单独但相关的问题,是否有一个在线的 ABCL 特定运行代码示例存储库,涵盖了此类边缘案例问题?

在其他 common-lisps 中,我会使用如下函数:

或者

在 ABCL 中,我糊里糊涂地走得不远:

[可能为线程创建必要流的语法/示例?]

提前感谢您的指针或代码。