标签: lispworks

有没有办法获得课程的插槽?

我有一个像这样的课

(defclass shape ()
 ((color :initform :black)
 (thickness :initform 1)
 (filledp :initform nil)
 (window :initform nil)))
Run Code Online (Sandbox Code Playgroud)

如果我只知道这个类的实例,那么common-lisp中是否有一个函数如何获取这些插槽的列表?

class common-lisp clos slots lispworks

10
推荐指数
1
解决办法
1539
查看次数

如何在Lisp中创建和写入文本文件

我想知道,如何在lisp中创建和编写文本文件.我只想写简单的行:

"break 1"
"break 2"
Run Code Online (Sandbox Code Playgroud)

我在Window 7上使用LispWorks IDE

lisp file-io file common-lisp lispworks

6
推荐指数
1
解决办法
1万
查看次数

浮点精度误差

我对下面的LISP表达式有疑问.在对浮点数求和时,存在浮动精度错误.

CL-USER> (+ -380 -158.27 -35.52)

Actual:   -573.79004
Expected: -573.79000
Run Code Online (Sandbox Code Playgroud)

请建议我如何在LISP中实现预期的结果(我正在使用Lispworks).

lisp common-lisp floating-accuracy lispworks

5
推荐指数
2
解决办法
1076
查看次数

如何在Lisp中读取用户输入

我对Lisp并不陌生,正在尝试编写一个程序,仅要求用户输入3个数字,然后对它们求和并打印输出。

我读到您可以使用类似的功能:

(defvar a)

(setq a (read))
Run Code Online (Sandbox Code Playgroud)

要在Lisp中设置变量,但是当我尝试使用LispWorks编译代码时,出现以下错误:

End of file while reading stream #<Concatenated Stream, Streams = ()>

我觉得这应该相对简单,不知道我要去哪里错。

lisp common-lisp lispworks

5
推荐指数
2
解决办法
7276
查看次数

创建自定义标准输出流

我正在使用 LispWorks 的多处理工具(请参阅此处)。我启动了许多子进程(使用process-run-function),其中每个子进程都与一个特定的邮箱相关联。我想要实现的是format子进程中标准输出(使用)的消息最终在邮箱中,之后我可以在主进程中读取它们。

我将通过用*standard-output*调用mailbox-send格式化字符串的自定义流替换子流程的流来解决这个问题。但是,我不知道如何创建这样的自定义流。我在这里有哪些选择?

common-lisp stream multiprocessing lispworks

4
推荐指数
1
解决办法
86
查看次数

如何创建与C宏对应的Lisp FLI函数

我想创建一个与C中的宏对应的lisp函数.例如,win32 API中有一个HIWORD,它被定义为头文件中的一个宏.

我尝试将其定义如下,但被告知HIWORD尚未解决.

CL-USER 4 > (hiword #xFFFFFFFF)
Error: Foreign function HIWORD trying to call to unresolved external function "HIWORDW".
Run Code Online (Sandbox Code Playgroud)

我只是想知道如何为C函数创建C宏的包装器.

(fli:define-c-typedef DWORD (:unsigned :long))
(fli:define-c-typedef WORD (:unsigned :short))

(fli:define-foreign-function
        (HIWORD "HIWORD" :dbcs)
        ((dwVal dword))
        :result-type word :calling-convention :stdcall)
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp ffi c-preprocessor lispworks

3
推荐指数
2
解决办法
155
查看次数

如何只为所有形状使用一个移动功能

我的代码中的移动功能有问题.我需要它:

  1. 一个可以移动所有形状的功能,或
  2. 具有相同名称的多个函数.

到目前为止,我已经为点,圆和多边形移动了具有不同名称的函数.我无法弄清楚如何为图片制作移动功能.

如果你们能帮助我与移动的图片功能和编辑所有的举动,使他们的工作就像我在开头所描述的功能.

    ;
    ; POINT
    ;

    (defun make-point ()
      (list (list 0 0) :black))

    (defun x (point)
     (caar point))

    (defun y (point)
      (cadar point))

    (defun set-x (point new-x)
      (setf (caar point) new-x)
      point)

    (defun set-y (point new-y)
      (setf (cadar point) new-y)
      point)

    (defun move (point dx dy)
     (set-x point (+ (x point) dx))
     (set-y point (+ (y point) dy))
     point)

    ;
    ; CIRCLE
    ;

    (defun make-circle …
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp lispworks

2
推荐指数
1
解决办法
123
查看次数

如何在 Lisp 中正确表示带有点对的盒子结构?

我在通过 LISP 的点对表示盒子结构时遇到问题。

CL-USER 21 > (cons 1 (cons (cons 3 4) (cons (cons 3 4) 2)))

(1 (3 . 4) (3 . 4) . 2)
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的,这是输出,但这显然是不正确的,因为 3.4 对出现了两次,有人可以帮我纠正这个问题吗?它必须用 cons(点对)表示。在此输入图像描述

我尝试用多种不同的方式来表示它,但我找不到解决方案。

lisp common-lisp lispworks

2
推荐指数
1
解决办法
110
查看次数

如何编译并运行LISP项目?

我是LISP新手,目前在window server 2008上使用LispWorks和ListBox IDE。我想知道,我们如何编译和运行包含350个LISP源文件的LISP项目。编译后会生成什么以及如何运行它......?以及有哪些技术可用于调试 Lisp 项目。(这是旧技术,所以我无法从互联网获得太多帮助)

lisp debugging compilation common-lisp lispworks

1
推荐指数
1
解决办法
1765
查看次数

Lisp列表中的输出不完整,#列表的深度超过四

我正在将Lispworks用于学校的项目,我遇到了一些麻烦; 监听器在输出中为我提供了一个带有高于四深度的列表的#标签.这是一个例子:

CL-USER 21 : 5 > '(1(2(3(4(a)))))
(1 (2 (3 (4 #))))
Run Code Online (Sandbox Code Playgroud)

任何线索?

lisp list common-lisp hashtag lispworks

1
推荐指数
1
解决办法
269
查看次数

在LISP中出现"错误的绑定表单"错误

我必须在Lisp中编写一个简单的程序,它将多项式乘以某个因子.在这个例子中,我想乘以(x + 5)*5x.答案应该是5x ^ 2 + 25x.

当我投入时,((1 1) (5 0)) (5 1))我应该得到(5 2) (25 1).但是,我遇到各种错误,undefined operator TERM in (TERM)并且bad binding form.我是Lisp的新手,并尝试返回如上所示的列表.以下是我的简短代码块:

(defun get-coef (term)
  (car term))

(defun get-power (term)
  (cadr term))

(defun make-term (coef power)
  (cons coef power))

(defun poly-eval (poly factor)
  (if (null poly) 0
    (let ((term (car poly))
          (let (coef ((* (get-coef(term)) (get-coef(factor)))))
               (power ((+ (cadr(term)) (cadr(factor)))))
               (make-term (coef power))
               (poly-eval (cdr poly) factor))))))
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!!

lisp common-lisp lispworks

1
推荐指数
1
解决办法
574
查看次数

lispworks和sbcl

首先,我被迫使用LispWorks,我想知道它实际使用了什么编译器,以及我是否可以在CLI中使用它.同样在LispWorks中有类似的方法defsystem,它们是以某种方式在环境中构建的还是它们形成了一个我可以在sbclREPL中实际加载的包(例如)?

lisp common-lisp lispworks

1
推荐指数
2
解决办法
248
查看次数

如何定义LISP函数,它将数组作为参数?

我想在函数中创建一个数组,并将其作为参数传递给另一个函数,该函数从该函数调用.我怎样才能做到这一点?这是伪代码:

define FuncA (Array Q){
    <whatever>
}

define FuncB (n){
    make-array myArray = {0,0,....0}; <initialise an array of n elements with zeroes>
    FuncA(myArray); <call FuncA from FuncB with myArray as an argument>
}
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp lispworks

0
推荐指数
1
解决办法
940
查看次数