lisp

    -2热度

    1回答

    (defun bubbleUp (n) (cond ((null n) nil) ((null (cdr n)) n) ((> (car n) (car (cdr n))) (append (list (car (cdr n))) (bubbleUp (cons (car n) (cdr (cdr n)))))) (t (a

    1热度

    1回答

    我看到,如果我想创建一个人工智能软件,Prolog和Lisp是我应该使用的两种语言。 对于这两者来说,这与C++ \ C \ C#无关? 这意味着更容易创建人工智能软件?或者我可以使用更多的功能来实现我的目标,即与其他我没有的功能。

    0热度

    1回答

    我有以下功能将数字输入转换为这些数字的部分翻译字输出。 使用产品和商,它将数字的单词表示分成几组,然后将数字分组。 例如: (number-name 87969087) -> '(87 million 969 thousand 87) (number-name 1000000) -> '(1 million) 我试着通过完全翻译那些低于1000以及数字来完成我的问题。我试图实现一个小于100

    -3热度

    1回答

    为什么Clojure的juxt并列命名?我不明白什么是并列的。这与具有直观命名的partial和comp形成对比。

    -1热度

    2回答

    我很新的LISP,我不知道如何使我的无限参数功能停止评估其余的参数时,其中一个因素是0。已经试过 (defmacro smart_multiplication (&rest l) (unless(member 0 l) `(* ,@l)) ) 但我认为这并不会停止倍增,直到它检查所有的变量。

    1热度

    3回答

    我写了复制在列表中的项目如下功能double(): (defun duplicate (l) (if (null l) nil (cons (car l) (cons (car l) (duplicate (cdr l)))))) 的duplicate()功能做出两次调用CONS功能为每个项目在列表中: Break 1 [2]> (trace cons) ;; Traç

    0热度

    2回答

    我有一个递归代码,需要在满足条件时终止它。我有条件显示列表的能力,但随后有另一个堆栈调用,我不需要处理,不让我返回列表。

    0热度

    2回答

    我正在研究计划中的作业MetaCircular评估者,并且我需要允许用户通过将其添加到表中来安装特殊的表单。这个想法是,当用户输入诸如(square 5)之类的东西时,评估者将查找名为square的表格。如果找到,它将返回lambda声明,如(lambda (x) (* x x))。 当代码返回lambda语句时出现问题。我收到以下错误信息: Error: Bad function object:

    0热度

    2回答

    我有一个问题,当我想执行以下代码: (defun sum1 (lambda (n) (+ n 1))) 当我的Mx ielm运行出现一条消息: 无效的功能:(拉姆达(拉姆达(N) (+ N + 1))无) 我想弄清楚的是,虽然我可能会使用下面的代码: (defun sum1(n) (+ n 1)) 我想知道如何在这种情况下定义lambda。 所有信息均被

    0热度

    1回答

    我正在使用Reagent编写一些代码,其中一部分涉及编写一些回调和状态操作。 这些地方中的一些会使用默认参数调用函数,我不想对它们做任何事情。我只想返回一个不变的值。 例如,当我使用类似#(true)的东西时,我会得到一个异常,而且我必须编写(fn [_] true)。有没有一种方法让lambda简写知道它正在获取参数而不使用它?