lisp相关内容

如何将方案中的列表拆分成n个大小相等的块?

我在试拍中的一些练习题,被困在这道题上了 我要做的是定义一个列表,如(Partition‘(1 2 3 4 5 6)3),然后调用Return’((1 2)(3 4)(3 4))。(三个大小相等的分区) 例如,(Partition‘(1 2 3 4)3)将提供输出 (1)(2)(3 4) 其中n为3是要创建的分区数 下面我试过解决这个问题 (define (threesize n ..
发布时间:2022-07-02 22:54:59 其他开发

LISP:在循环中收集多个列表

我希望能够在一个循环中收集多个列表。 我知道这可以在没有循环的情况下完成,但我想知道使用循环是否也可以这样做。我想要这样的: (loop for var in list (if (cond1 var) (if (cond2 var) collect into list1 coll ..
发布时间:2022-07-01 19:03:11 其他开发

LISP逐层显示二叉树

我有一个类似于(A(B(C,D))(E(F)的列表,它代表这棵树: A / B E / / C D F 如何打印为(A、B、E、C、D、F)? 这就是我所能做到的: ((lambda(tree) (loop for ele in tree do (print ele))) my-list) 但打印: A (B ( ..
发布时间:2022-06-30 22:01:45 其他开发

如何将列表转换为方案中的code/lambda?

假设我有一个列表,例如:(define a '(+ (* p p) (* x x)))。 如何使用a给出的表达式定义过程,例如: (define (H x p) (+ (* p p) (* x x))))? 我尝试这样做:(define (H x p) (eval a)),但它显示p和x是未定义的。我想,对于apply或类似的东西,有一个简单的解决方法,但我不能理解它。 我想我可以根据传 ..
发布时间:2022-06-27 21:05:01 其他开发

如何定义接受一个集合(不同元素的列表)并生成该集合的所有子集的列表的Scheme过程?

首先,我想澄清一下,我知道有一些与我要问的问题类似的问题,但是我有一个非常具体的输出案例,我正在尝试复制该案例。 我正在尝试创建一个Scheme过程,该过程允许我获取一个集合并生成一个列表,该列表显示该集合的所有可能子集。 例如,如果我调用:(subsets '(a b c )),我应该得到:'((a b c) (b c) (a c) (c) (a b) (b) (a) ())(具体按 ..
发布时间:2022-03-27 16:15:34 其他开发

任意类型说明符上的Defmethod?

我尝试做的是: (defgeneric fn (x)) (defmethod fn ((x (integer 1 *))) "Positive integer") (defmethod fn ((x (integer * -1))) "Negative integer") 我想要一个可以处理任意类型说明符的泛型函数,包括基于列表的说明符,如(and x y)、(or ..
发布时间:2022-03-21 23:10:58 其他开发

常用Lisp反引号/反引号:如何使用?

我在使用Lisp的反引号读宏时遇到了问题。每当我试图编写似乎需要使用嵌入式反引号的宏时(例如,Paul Graham的ANSI Common Lisp第399页中的``(w ,x ,,y)),我都不知道如何以编译的方式编写代码。通常,我的代码会收到前面带有“逗号不在反引号内”的整个错误链。有人能为我如何编写正确计算的代码提供一些指导吗? 作为示例,我目前需要一个宏来描述'(function-na ..
发布时间:2022-03-21 23:05:53 其他开发

计算传递给用LISP生成函数的宏的参数

我正在尝试创建一个宏,该宏基于py-configparser创建的配置对象为每个配置定义访问器函数: (defmacro make-config-accessor (config section option) ; create an upper case function name then intern (let* ((fun-name (intern (string-upcas ..
发布时间:2022-03-09 13:10:53 其他开发

Elixir 和 Julia 之类的语言在什么意义上是谐音的?

Lisp 中的同音性很容易看出: (+ 1 2) 既是对+的函数调用,以1、2为参数,又是一个包含+、1 和 2.它同时是代码和数据. 不过,在像 Julia 这样的语言中: 1 + 2 我知道我们可以在 Julia 中将其解析为 Expr: :(1 + 2) 然后我们可以获取 AST 并对其进行操作: 朱莉娅>Meta.show_sexpr(:(1 ..
发布时间:2022-01-23 19:23:05 其他开发

Java 中的 Lisp 表达式求值器(仅使用一个堆栈)

我正在尝试使用 Java 实现一个简单的 Lisp 表达式求值器.实际上有大量关于该主题的信息,但似乎他们都使用两个单独的堆栈来得出结果.我想知道是否可以只使用一个堆栈来实现这样一个程序,以及一些伪代码可能会是什么样子. 谢谢. 有关我所说的更多信息,请参阅 http://www.chegg.com/homework-help/questions-and-answers/outl ..
发布时间:2022-01-22 13:01:22 Java开发

如何实现“无堆栈"?解释语言?

我正在制作我自己的类似 Lisp 的解释语言,并且我想做尾调用优化.我想将我的解释器从 C 堆栈中解放出来,这样我就可以管理我自己从函数到函数的跳转以及我自己的堆栈魔法来实现 TCO.(我真的不是说堆栈本身,只是调用不会将帧添加到 C 堆栈的事实.我想使用我自己的堆栈,它不会随着尾调用而增长).像 Stackless Python 一样,不像 Ruby 或……我猜是标准 Python. 但是 ..
发布时间:2022-01-22 12:46:55 其他开发

使用 Vim 进行 Lisp 开发

我已经断断续续地使用 Lisp 有一段时间了,但我开始更加认真地在 Lisp 中做一些“真正的"工作.我是 Vim 的忠实粉丝,我想知道如何使用 Vim 作为我的 Lisp 开发编辑器来提高工作效率.欢迎使用插件、工作流程建议等. 请不要说“使用 emacs",因为我已经开始使用 Vim 并且作为编辑器我真的很享受它. 解决方案 Limp 旨在成为一个功能齐全的用于 Vim 的 Co ..
发布时间:2022-01-20 21:27:31 其他开发

Lisp 多次格式化一个字符

我正在寻找一种输出字符的方法多次使用格式.这可能吗?有人可以填吗在 _?_ 中,以便示例有效? (let ((n 3))(格式无 "_?_" _?_ #\* _?_ )) 应该返回 =>“***" 解决方案 很高兴看到这么多解决方案:~A、~ ..
发布时间:2022-01-15 10:16:42 其他开发