问题标签 [s-expression]

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 投票
3 回答
1619 浏览

clojure - 如何安全地读取不受信任的 Clojure 代码(不仅仅是一些序列化数据)?

有效,但不安全

不工作...

如何安全地将 Clojure 代码(保留所有 '#'s 本身是可取的)读入树中?想象一个 Clojure 防病毒软件,它想要扫描代码中的威胁并想要使用数据结构,而不是纯文本。

0 投票
1 回答
105 浏览

lisp - 如何反序列化 s-exp 然后对其进行序列化并避免大写?

我应该阅读一个复杂的 s 表达式树,修改一些节点并将其保存在某处。

看来,在处理过程中,“读取”功能正在“修改”输入。例如在一个简单的例子中:

您可以看到它大写节点(以及值)。

同样,它似乎可以在值的最左边和最右边添加管道。如:

它增加了管道!

有没有办法告诉'阅读不要那样做?我想当 s 表达式实际上是一个有效的 LISP 程序时,这种修改是有充分理由的。但这里不是这样。让我们将该文件视为 XML 文件。一个看似 s-expr 的简单配置文件。我不需要他“实习”它读取的符号。我只需要他将其反序列化为一棵树,因为对我来说这是搜索树的最简单方法('car 和 'cdr 不好)。

好吧,如果树已形成,那么每个符号都必须被实习。换句话说,我怎么能告诉他不实习任何符号,而是将其保留为字符串。(因此它可以形成 cons-tree,但不是指向符号,而是指向字符串。你明白我的意思吗?)

0 投票
1 回答
820 浏览

graph-theory - 有向无环图的 S 表达式?

正如我们所知,树结构可以用 S 表达式表示。例如

但是是否可以将 S 表达式用于图形(尤其是 DAG)?例如

我的第二个问题是 S 表达式的拓扑限制可以表示什么?

我用谷歌搜索了这个问题,找不到线索,没有正式的 CS 背景,我自己也很难弄清楚。请不要关闭这个问题。提前致谢!

0 投票
1 回答
224 浏览

converter - S 表达式到 DOT 的转换库

我正在寻找一个简单的脚本或库来将 s 表达式转换为点格式,并且在谷歌搜索中没有太多运气来寻找解决方案。

我遇到了一个旧的 awk 脚本(lisp2dot),但是我相信我的表达式可能太复杂了,因为我正在从遗传编程框架中生成 S 表达式。我希望将其转换为点格式,以便了解输出树的外观。

任何建议都是必要的...我宁愿不手动执行此操作,因为它实际上仅用于演示目的并满足我对输出的好奇心(因为阅读大型 s 表达式可能会很麻烦)。

0 投票
1 回答
154 浏览

pex - PexSymbolicValue.GetRawPathConditionString() 中符号的含义是什么?

我正在使用 PexSymbolicValue.GetPathConditionString() 来获取 PexMethods 中的路径条件。我发现有一种方法 PexSymbolicValue.GetRawPathConditionString() 可以获取 S 表达式格式的路径条件,但我找不到在其输出中使用的符号的引用。此输出示例:“(Ceq (Ceq node null) 0)\r\n(Ceq (Ceq(select next node) null)0)\r\n(Clt (Add (select elem node)(Mul (select elem (选择下一个节点)) -1)) 1)\r\n”

0 投票
2 回答
268 浏览

programming-languages - 除了 Lisp 方言,还有其他基于 S-exp 的语言吗?

除了 Lisp 方言,还有其他基于 S 表达式或波兰语前缀表示法的语言吗?

它不必是函数式编程语言,也不必以某种方式与 Lisp 相关。

当我说 Lisp 方言时,我指的是 Arc、AutoLISP、Clojure、Common Lisp、Emacs Lisp、EuLisp、Franz Lisp、Interlisp、ISLISP、LeLisp、Maclisp、MDL、Newlisp、NIL、Picolisp、Portable Standard Lisp、Racket、Scheme、SKILL 、Spice Lisp、T、XLISP、Zetalisp(来自维基百科页面)。

有许多完全不同的语言使用类 C 语法或类 Python 语法,但对于 S 表达式或波兰语前缀表示法语法,似乎只有 Lisp 方言。真的是这样吗?为什么?

0 投票
1 回答
747 浏览

python - Python——使用现有类方法的特殊方法算术

这个类接受一个有限域多项式字符串,解析它,操作 (+-*/%),然后以与输入相同的格式输出。它工作正常(到目前为止)。但是,现在我试图在算术运算符上实现特殊方法,但我无法超越简单地连接字符串的地步。通常,想法是将输入初始化为类实例,但在这种情况下,输入上有一个正则表达式,这似乎使任何尝试这样做都变得复杂。我正在自学 Python,所以这对我来说是一部恐怖电影,但对于任何经验丰富的 Python 程序员来说可能只是一个玩具。

这些似乎有很多信息,但我不确定它们在这种情况下有多大帮助:

这是我正在使用的课程和示例:

底部的最后一个示例显示了问题:

和输出:

因此,正如您所看到的,smadd1我需要使用 + 添加这两个,而不仅仅是连接。另外,我想知道在这种情况下是否需要使用 S 表达式树。

编辑:

Multiply() 正在工作但现在不可用:

它的原始形式是:


忽略这个问题multiply(),我修复了它。更改的行是:

并且在那之前的那条线被取出了。

0 投票
3 回答
435 浏览

lisp - LISP 1.5 How lisp is like a machine language?

I wish that John McCarthy was still alive, but...

From LISP 1.5 Programmer's Manual :

LISP can interpret and execute programs written in the form of S- expressions. Thus, like machine language, and unlike most other higher level languages, it can be used to generate programs for further execution.

I need more clarification about how machine language can used to generate programs and how Lisp can do it?

0 投票
1 回答
1048 浏览

c - 在 C 中运行嵌入式 R

我编写了一段 C 代码,它声明了一个大小为 4x4 的方阵。rgig然后它从 R中的 package中调用的采样函数中采样GeneralizedHyperbolic。它使用 gnu 中的 gsl 库对矩阵求逆并输出结果。这是从 C 调用 R 的练习。

我使用以下代码编译了代码:

输出:

当我提交时:

它给出了错误:

我究竟做错了什么?

我还更改了main()totest()并将共享对象设置为

输出:

如果我dyn.load("embedR_matinv.so")在 R Studio 中执行操作,则代码会在没有任何终止的情况下运行,即它会挂起!

关于代码中有什么问题的任何建议?

0 投票
2 回答
224 浏览

emacs - Emacs:防弹清单?

up-list: Scan error: "Unbalanced parentheses"从这个位置得到:

up-list来自文档的片段:

此命令假定 point 不在字符串或注释中。

所以这是预期的行为。但我不在乎。我只想从列表中向上。有人可以建议一个up-list做正确事情的克隆吗?

我正在寻找比这个天真的代码更好的东西: