问题标签 [picolisp]

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 回答
1037 浏览

lisp - picoLisp 语言:onOff 问题

这个问题真的没有实际意义,我想我一定是在我的程序中遇到了一个错误或什么的。如果您仍在寻找PicoLisp和 onOff 行为,请看这里




这应该发生吗?

  • 不应该显式传递符号名称吗?
  • 为什么它返回最后一个符号的值?
0 投票
1 回答
486 浏览

lisp - Picolisp 问题,处理数字列表时的段错误(来自邮件列表)

我是 Picolisp 的新手。

我尝试了这个,并获得了一个段错误:

但是,如果我尝试:

我基本明白为什么,但令人惊讶的是 PicoLisp 以段错误而不是错误响应。这是否意味着 Picolisp 不检查数字是否为函数,但当它是符号时它会检查?

0 投票
1 回答
167 浏览

lisp - Pilog 中自动生成的密钥

为 Pilog 自动生成密钥的最佳方法是什么?我一直在挖掘,找不到任何相关的东西。

提示和指针将不胜感激。谢谢你。

0 投票
2 回答
687 浏览

macos - 'call foo@plt' 的 OSX GNU 汇编器问题

在尝试在 Mac OS X (10.6.7) 上构建 64 位 PicoLisp 时,我似乎遇到了 OSX Dev 的问题。工具 GNU 汇编器 ('as'),版本 1.38。我的 Xcode 是 3.2.4 版。我的(生成的)x86-64.darwin.base.s 中导致问题的行通常如下所示:

...他们给我这样的错误消息:

64 位 PicoLisp 在 Linux 和 SunOS 上构建没有问题。这些平台可能具有功能更强大(更新)的 GNU 汇编器版本。我不知道更新的 GNU 汇编器是否适用于 OSX/Darwin ......或者是否有其他解决方案?

如果你想在 OSX/Darwin 上自己尝试一下,我可以给你一些需要的文件。

0 投票
1 回答
136 浏览

unix - ncurses中的颜色对没有使用正确的颜色

我正在尝试使用 ncursesw6.1(链接到 PicoLisp)。据我所知,PicoLisp 直接传递值的方式是,我通过非 C 语言调用 ncurses 的事实不应该是一个因素[1]。但是,当我尝试使用颜色对(定义如下)时:

它不起作用。相反,颜色对 1、2 和 3 都显示为相同的颜色对。然后 4 和 6 显示为*COLOR-SCHEME-COMMENT顶部,*COLOR-SCHEME-BACKGROUND-DARK5 和 7 显示为 4 和 6 的反面。这似乎与我输入的内容没有逻辑关系。更奇怪的是,当我使用非自定义颜色(颜色 0-7)时,它也不起作用,因此通过定义这些配色方案颜色init_color与它无关。

我已经用颜色对 1 单独测试了颜色,所以我知道颜色正在正确初始化。

到底是怎么回事init_pair

PS 如果我使用 Lisp 的事实让这变得更加困难,我真的很抱歉,我知道它不是一种通用语言。这在当时似乎是个好主意,而且到目前为止还不错……

编辑:我已经重新编译了启用的 libncursesw6.1 --with-trace,这是来自跟踪文件的相关信息:

这些确实是正确的值,因此正确的值被传递给init_pair. 虽然自定义颜色不是问题,但对于那些想知道的人来说,这里是关于颜色的trace文件信息:*COLOR-SCHEME

此外,虽然我将wborder函数设置为使用颜色对 7,根据调试信息应该是颜色 8 而非颜色 13(与我的代码中的颜色匹配),但trace文件说它实际上使用的是颜色对 5,我在代码中的任何地方都没有使用:

所以,我上面的推测是确实正在发生的事情。颜色对 5 和 7 显示相同,即使颜色和颜色对被正确传递给 ncurses。

0 投票
1 回答
210 浏览

scope - 如何编写不使用参数隐藏变量的 PicoLisp 函数

我在闲逛 PicoLisp,发现自己对如何编写传统上由宏处理的元编程函数(在其他 lisp 方言中)感到困惑。对我来说最大的担忧是我看不到如何防止变量名隐藏。回顾元编程 101中的示例,如果有的话,只会让我更加困惑。

有关如何实现该功能的示例mapeach,如链接文章中所示:

我已经用 call 测试了每一个(let "Args" * (mapeach N (1 2 3) ("Args" N N)))。正如预期的那样,PicoLisp 解释器(以 command 开头pil +)遇到段错误并崩溃。我认为这是因为mapeach's"Args"阴影"Args"在调用点定义。

我还尝试了他们的两种实现map@(“更可爱”的替代方案mapeach)。

我曾经(let "Args" * (map@ (1 2 3) ("Args" @ @)))测试过这些实现中的每一个。奇怪的是,我第一次测试第一个实现时,不仅没有段错误而且实际上产生了正确的结果(1 4 9)。随后的每个测试都导致了段错误。为清楚起见,提示中的片段:

我相信通过调用(当时)未定义的函数以某种方式阻止了段错误mapeach,我也尝试过(ooga booga),这同样阻止了段错误。如果我没有将定义与正确调用分开的错误调用,则总是会发生段错误。

这最终导致两个问题:

  1. 如何防止名称隐藏?显然,这些例子在这方面并不成功。
  2. 为什么对 map@ 的调用不会导致段错误?
0 投票
1 回答
28 浏览

lisp - 如何在 PicoLisp 中使用 `cond` 返回默认值

cond当语句不满足其他条件时,我试图返回默认值。如何在 PicoLisp 中实现这一点?

使用此参考代码编码的示例