Lisp在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
lisp 测试 发布于:2024-08-14 13:24 common lisp exercise 10.2 发布于:2024-04-27 16:53 做个小测试, 发布于:2024-03-14 09:53 桥梁安全计算lisp 发布于:2023-10-24 09:36 定义函数 newCalc,接受两个参数 x 和 y 发布于:2023-09-23 16:06 判断两数之和大于第三个数 发布于:2023-09-01 16:21 分数陈述性知识 发布于:2023-08-24 22:27 CAD面积/体积计算 发布于:2023-04-19 12:08 测试lisp语言 发布于:2023-04-10 15:03 计算list中某一元素数量 发布于:2023-02-16 11:32 LISP 初体验 发布于:2021-08-11 13:16 XY坐标标注CAD插件 发布于:2021-06-11 15:25 format t 输出语句 发布于:2020-08-10 18:21 print 输出语句 发布于:2020-08-10 18:20 write 输出语句 发布于:2020-08-10 18:16 write-line 输出语句 发布于:2020-08-10 18:14 循环输出内容 发布于:2020-08-10 18:11 [更多]
显示目录

向量



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

向量

向量是一维数组,数组因此子类型。向量和列表统称序列。因此,我们迄今为止所讨论的所有序列的通用函数和数组函数,工作在向量上。

创建向量

向量函数使可以使用特定的值固定大小的向量。这需要任意数量的参数,并返回包含这些参数的向量。

示例1

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setf v1 (vector 1 2 3 4 5))
(setf v2 #(a b c d e))
(setf v3 (vector 'p 'q 'r 's 't))
(write v1)
(terpri)
(write v2)
(terpri)
(write v3)

当执行代码,它返回以下结果:

#(1 2 3 4 5)
#(A B C D E)
#(P Q R S T)

请注意,LISP使用#(...)语法为向量的文字符号。可以使用此#(...)语法来创建并包含在代码中的文字向量。

然而,这些是文字向量,所以修改它们没有在LISP语言中定义。因此,对于编程,应始终使用向量函数,或者make-array函数来创建打算修改的向量。

make-array函数是比较通用的方式来创建一个矢量。可以访问使用aref函数的矢量元素。

示例 2

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setq a (make-array 5 :initial-element 0))
(setq b (make-array 5 :initial-element 2))
(dotimes (i 5)
  (setf (aref a i) i))
(write a)
(terpri)
(write b)
(terpri)

当执行代码,它返回以下结果:

#(0 1 2 3 4)
#(2 2 2 2 2)

Fill 指针

make-array函数允许创建一个可调整大小的矢量。

函数fill-yiibaier参数跟踪实际存储在向量中的元素的数量。它的下一个位置,当添加元素的向量来填充的索引。

vector-push函数允许将元素添加到一个可调整大小的矢量的结束。它增加了填充指针加1。

vector-pop函数返回最近推条目,由1递减填充指针。

示例

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:


(adsbygoogle = window.adsbygoogle || []).push({});

(adsbygoogle = window.adsbygoogle || []).push({});
(setq a (make-array 5 :fill-yiibaier 0))
(write a)
(vector-push 'a a)
(vector-push 'b a)
(vector-push 'c a)
(terpri)
(write a)
(terpri)
(vector-push 'd a)
(vector-push 'e a)
;this will not be entered as the vector limit is 5
(vector-push 'f a)
(write a)
(terpri)
(vector-pop a)
(vector-pop a)
(vector-pop a)
(write a)

当执行代码,它返回以下结果:

#()
#(A B C)
#(A B C D E)
#(A B)
由JSRUN为你提供的Lisp在线运行、在线编译工具
        JSRUN提供的Lisp 在线运行,Lisp 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout