首页 文章
  • 1 votes
     answers
     views

    Emacs - slime - 将当前函数保存到文件

    我开始使用CLisp,因此也开始使用Emacs,包括“SLIME”插件(或者不管它叫什么 . 它是如何调用的?) 所以我已经玩了很长一段时间的REPL,并用(defun)定义了很多函数 . 不幸的是,这些函数都没有写在文本文件中,我也不想重新编写这些函数 . 有没有办法可以将REPL中完成的工作转储或以其他方式保存到文件中? (如果文件是Lisp源代码,奖励积分:))
  • 0 votes
     answers
     views

    在自定义REPL中使用Slime autodoc

    我正在使用SLIME和EMACS用于Common LISP,使用SBCL编译器 . SLIME的autodoc功能,其中函数参数显示在迷你缓冲区中,工作正常 . 但是当我执行如下的自定义REPL时: (defun game-repl () (let ((cmd (game-read))) (unless (eq (car cmd) 'quit) (game-print (...
  • 42 votes
     answers
     views

    Slime for Scheme最接近的是什么?

    我在Common Lisp中完成了大部分的开发工作,但是有些时候我想切换到Scheme(在Small Pieces中读取Lisp,当我想要使用continuation时,或者当我想在Gauche中执行一些脚本编写时,例) . 在这种情况下,我不舒服的主要原因是我没有史莱姆(是的,你可以称我为瘾君子) . Scheme最接近史莱姆的是什么?具体来说,我最感兴趣的是: Emacs集成(这一点很明显...
  • 5 votes
     answers
     views

    LISP中的矢量计算

    如何在lisp中执行矢量计算,例如矢量的大小,矢量的范数,距离(两点之间),点积,叉积等 . 谢谢 .
  • 0 votes
     answers
     views

    从文件流到常见的lisp中的assoc-list

    我有一个以 (defparameter *myfile* '(((KEY 1) (A1 CAN) (A2 4) (SUR (((BCZ S) (FEATS NIL)) (DIR FS) (LADOM ALL) (((NNEW S) (FEATS NIL)) (DIR BS) (LADOM ALL) ((NNEW NP) (FEATS ((BIG NOM))))))) (SEM (LAM P (P ...
  • 5 votes
     answers
     views

    Common Lisp:如何检查插槽是否绑定? (CLOS)

    假设我们有一个没有的插槽:initform (defclass foo () ((x :reader x :initarg x))) 如何检查foo实例的插槽x是否绑定? 有一种方法可以用MOP来做到这一点,我觉得非常难看 . 有没有更简单的方法? 我宁愿诉诸: (defclass foo () ((x :reader x :initarg x :initform nil))) 并检查...
  • 3 votes
     answers
     views

    在Common Lisp中定义多个后端的惯用方法?

    我想用多用户界面后端(例如文本和图形)编写代码,因此它们很容易切换 . 我的方法是使用CLOS: (defgeneric draw-user-interface (argument ui) (:documentation "Present the user interface") (:method (argument (ui (eql :tui))) (form...
  • 0 votes
     answers
     views

    如何在普通的lisp中获取类的所有实例?

    想象一下我有一节课: (defclass person () ()) 然后我做了一些实例: (setf anna (make-instance 'person)) (setf lisa (make-instance 'person)) How can I get either the objects themselves or the symbol names they were as...
  • 1 votes
     answers
     views

    编译Common Lisp代码时出现奇怪的错误

    我试图编译一些代码时收到以下错误: 方法#的Lambda列表与通用函数INITIALIZE-INSTANCE的列表不兼容 . 方法的lambda-list:(PAT :: E)通用函数:(CCL :: INSTANCE&REST CCL :: INITARGS&KEY&ALLOW-OTHER-KEYS) 以下是导致错误的代码: (defclass event () ((timestamp ...
  • 6 votes
     answers
     views

    常见的lisp,未定义的交集函数行为?

    根据CLHS条目的INTERSECTION功能(http://www.lispworks.com/documentation/HyperSpec/Body/f_isec_.htm): 对于满足测试要求的每一对,该对中的两个元素中的一个将被放入结果中 . 我的问题是我需要知道对中的 which one of the two elements 将被放入结果中,这很重要,例如 :key #'car ...
  • 2 votes
     answers
     views

    Common Lisp函数

    我想创建一个函数来验证列表的数字是否介于1和10之间(包括1和10) . 如果他们这样做,我想将它添加到我创建的新列表中 . 然而,如果它们未能落在该范围内,我决定将它们转换为适合而不是丢弃它们(通过添加(1(随机10)) . (defun fit (lst) "(lst) check every number if it fits the range (1-10)" ...
  • 24 votes
     answers
     views

    Common Lisp中的值函数

    这些值是Common Lisp中的函数,只是用于将多个值打包到一个被调用者解构的列表中的语法糖 . 我问,因为我认为Common Lisp支持"true"多值返回,而不是像其他语言一样返回元组或列表,例如python . 有人告诉我,这只是语法糖,所以我希望有人能够解释它 . 为了尝试理解values函数返回的类型,我键入 (type-of (values 1 2 3)) ,输...
  • 0 votes
     answers
     views

    Common Lisp:在函数中使用未定义的变量

    我想在Common Lisp中做类似的事情: (defparameter *fun* (lambda () x)) (let ((x 0)) (funcall *fun*)) ;should return 0 我想在定义函数时访问未定义的函数中的本地绑定 . 如果我使用x作为参数,它会工作,但我无法更改变量的值: (defparameter *fun* (lambda (x) ...
  • -2 votes
     answers
     views

    Common Lisp程序错误

    我是一个很新的Lisp编程语言,我得到一个我无法解决的错误:/希望有人可以帮助我 . (对不起,如果是新手的错误) 这是我的代码: (defun inicia() (princ "Ingresa la infija") (setf temp(read-line)) (setf final nil) (setf pilatemp nil) (setf tamaño (lengt...
  • 0 votes
     answers
     views

    EVAL:Common LISP中的未定义函数[重复]

    这个问题在这里已有答案: Writing recursive GCD in Lisp 4个答案 我在CLISP中定义了一个简单的功能函数: (defun power(B E) (if (= E 1) B (* B ( power (B (- E 1)))))) 但是当我尝试这样调用函数时: (power 2 6) 我收到以下错误: *** - EVAL:未...
  • 0 votes
     answers
     views

    SBCL -Common Lisp错误

    我试图从以下链接运行存储库:https://github.com/JafferWilson/test-program 我收到此错误: sbcl --script paraphrasing.lisp Unhandled SB-KERNEL:SIMPLE-PACKAGE-ERROR in thread #<SB-THREAD:THREAD ...
  • 2 votes
     answers
     views

    在Atom上有Common Lisp的github降价语言标识符吗?

    我试图在Atom上使用GitHub Markdown在Common-Lisp中编写一些代码块,但是如果我写的话 ```common-lisp ```cl 它没有突出语法 .
  • 10 votes
     answers
     views

    使用slime-fancy(slime-autodoc)设置clojure和常见lisp的emacs

    我为clojure和常见的lisp设置了emacs,但我也希望(slime-setup'(slime-fancy))用于常见的lisp . 如果我将该行添加到init.el,clojure将无法工作:它给了我repl,但它在我运行任何代码后挂起 . 我的配置 对于clojure: 我通过ELPA设置了clojure-mode,slime,slime-repl 我在项目目录中运行$ lein...
  • 6 votes
     answers
     views

    Racket中的宏定义宏?

    在Common Lisp中,创建宏定义宏相对容易 . 例如,以下宏 (defmacro abbrev (short long) `(defmacro ,short (&rest args) `(,',long ,@args))) 是一个宏定义宏,因为它扩展到另一个宏 . 如果我们现在放 (abbrev def defun) 在我们的程序中,每当我们定义一个新函数时,我们都...
  • 2 votes
     answers
     views

    无法用windows下的emacs sbcl启动粘液

    我想配置我的emacs以使用SLIME和SBCL . .emacs文件如下所示: (add-to-list 'load-path "D:/app/slime/") (setq inferior-lisp-program "sbcl") (require 'slime) (slime-setup) 现在我可以启动emacs,但是如果我输入Mx slime,...
  • 7 votes
     answers
     views

    使用Common Lisp宏捕获-22情况

    通常当我尝试编写一个宏时,我遇到了以下困难:我需要一个传递给宏的表单,然后在生成宏的扩展时调用的辅助函数处理之前进行评估 . 在下面的示例中,我们只关心如何编写宏来发出我们想要的代码,而不是宏本身的无用: 想象一下(忍受我)Common Lisp的 lambda 宏的版本,其中只有参数的数量很重要,参数的名称和顺序不重要 . 我们称之为 jlambda . 它会像这样使用: (jlambda 2...
  • 0 votes
     answers
     views

    Common Lisp - 函数之间的错误:表单中未定义的运算符get-param(get-param:mem)

    我在LispWorks,我看到这个 Headers 的其他问题,但没有一个帮助我 . 这是我写的代码: (defun get-param (param) (lambda (state) (getf (cdr state) param))) (defconstant get-acc (get-param ':acc)) (defconstant get-pc (get-para...
  • 3 votes
     answers
     views

    Common Lisp Multiple Metaclasses

    在最近发现weblocks的活动分支之后,我想将它与ORM库mito结合起来 . Weblocks定义了一个宏 defwidget ,它在实践中包含 defclass ,如下所示: (defclass my-class () ((slot)) (:metaclass weblocks/widgets/mop:widgets-class)) 同时美图的工作原理如下: (defclass m...
  • 4 votes
     answers
     views

    Common Lisp中的等于运算符

    为什么这样: (every (lambda (x) (equal "a" x)) "aaaaa") 还有这个: (every (lambda (x) (equal "a" x)) "a") 返回 NIL ,同时: (every (lambda (x) (equal "a" x)) '(&quot...
  • 142 votes
     answers
     views

    Common Lisp中`set`,`setq`和`setf`之间的区别?

    Common Lisp中“set”,“setq”和“setf”有什么区别?
  • 2 votes
     answers
     views

    Common Lisp Unbound Variable

    是否可以使用未初始化的变量作为函数参数?对于作业,我必须使用CLOS编写语义网络系统,我的教授包括一个测试函数来测试我们的输出,其中一个指定: (print (def-concept Human)) , 这意味着将参数Human传递给函数def-concept . 运行此测试功能时,我无法摆脱错误(在Allegro CL中): Error: Attempt to take the value of...
  • 0 votes
     answers
     views

    常见的lisp CLOS调度

    是否有一种很好的方法可以让一个通用函数在列表的车上发送? 我一直致力于一个符号代数程序,目前我正在将大量数据存储为具有不同关键字的列表,如 car 来表示类型 . 例如,我将单纯形式存储为 '(:simplex #(0 1 2)) ,并且我有一些我正在调用的步骤,将其存储为 '(:step #(0 1 0 1)) . 我希望能够采用这两者的维度和边界,理想情况下使用一些内置的调度机制 .
  • -2 votes
     answers
     views

    CLOS是Common Lisp的弱点吗? [关闭]

    我想说的是,如果CLOS是Lisp函数式编程方式的一个不好的做法?
  • 105 votes
     answers
     views

    Clojure,Scheme / Racket和Common Lisp有什么区别?

    我知道他们是同一个语言家族的方言,称为lisp,但究竟是什么区别呢?如果可能,您是否可以概述语法,特征,功能和资源等主题 .
  • 4 votes
     answers
     views

    Common Lisp中的列表对象方法(CLOS)

    有没有办法让对象定义所有方法并检查对象是否响应指定的方法? 寻找类似Ruby的“foo”.methods (list-methods *myobj*) ;; -> (method0 method1 methodN) 还有像ruby的“foo”.respond_to? :方法 (has-method-p *myobj* 'foo-method) ;; -> T 对于插槽有slot-e...

热门问题