首页 文章
  • 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函数式编程方式的一个不好的做法?
  • 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...
  • 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 ...
  • 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...

热门问题