相关疑难解决方法(0)

如何修改这个"make-matrix"函数?

那么,有缺陷的功能如下:

(defun make-matrix (n)
  (make-array (n n) :initial-element 0))
Run Code Online (Sandbox Code Playgroud)

我想使用像(make-matrix 8)更换更长时间的函数(make-array '(8 8) :initial-element 0),但CLISP说有一个错误(n n),因为n它不是一个定义的函数.我该如何写这个make-matrix函数?

lisp clisp common-lisp

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

如何在Common Lisp中创建一个多维数组?

是否可以使用列表作为参数调用make-array函数?例如:

(make-array '((length '("a" "b")) (length '("r" "8" "5"))))
Run Code Online (Sandbox Code Playgroud)

返回:

#<TYPE-ERROR expected-type: NUMBER datum: (LENGTH '(...
Run Code Online (Sandbox Code Playgroud)

即使我尝试使用以下命令转换长度的结果:

(coerce (length '(1)) 'number)
Run Code Online (Sandbox Code Playgroud)

它适用于一维数组但不适用于二维数组.

common-lisp

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

LISP创建阵列

当我使用此函数创建数组时,出现以下错误:

> (defun f1(lst)
   (setf m (make-array '((length lst) 3))))
F1
> (f1 '(1 2 3))
Error: Not a nonnegative integer - (LENGTH LST)    
Run Code Online (Sandbox Code Playgroud)

列表的长度应为非负整数,在这种情况下为3,那么为什么会出现此错误,我该怎么办?

> (length '(1 2 3))
3
Run Code Online (Sandbox Code Playgroud)

lisp arrays common-lisp

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

将参数传递给 make-array

(defun makeAr(li co)
    (make-array '(li co)))
Run Code Online (Sandbox Code Playgroud)

这不起作用,它说 li 和 co 是非法参数,尽管我这样称呼它例如:

(make-array 3 3)
Run Code Online (Sandbox Code Playgroud)

这根本行不通。有谁知道为什么?

lisp common-lisp

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

标签 统计

common-lisp ×4

lisp ×3

arrays ×1

clisp ×1