当前位置: 首页 > news >正文

Nyquist插件基础:LISP语法-运算符

1 Nyquist插件基础:LISP语法-运算符

Nyquist 基于 Lisp 语言,其运算符(在 Lisp 里通常体现为函数调用)丰富多样,涵盖了算术、比较、逻辑等多种类型。以下是对各类运算符的详细介绍及用法示例:

1.1.1 1. 算术运算符

1.1.1.1 +(加法)

用于计算多个数值的和,可接受任意数量的数值参数。

(+ 2 3) ; 返回 5
(+ 1 2 3 4) ; 返回 10
1.1.1.2 -(减法)

既可以是二元运算符用于两数相减,也能作为一元运算符求相反数,还能对多个数进行连续减法。

(- 5 3) ; 返回 2
(- 3) ; 返回 -3
(- 10 3 2) ; 返回 5(先算 10 - 3 = 7,再算 7 - 2 = 5)
1.1.1.3 *(乘法)

计算多个数值的乘积,可处理任意数量的数值参数。

(* 2 3) ; 返回 6
(* 2 3 4) ; 返回 24
1.1.1.4 /(除法)

进行除法运算,若操作数为整数且不能整除,会返回浮点数结果。

(/ 6 2) ; 返回 3
(/ 5 2) ; 返回 2.5

在 Nyquist 里,存在用于取余的运算符。在 Lisp 体系(Nyquist 基于 Lisp)中,通常使用 mod 函数来实现取余操作,下面为你详细介绍其用法:

1.1.2 2. 比较运算符

1.1.2.1 =(等于)

判断多个数值是否相等,所有数值相等时返回 t,否则返回 nil

(= 2 2) ; 返回 t
(= 2 3) ; 返回 nil
1.1.2.2 <(小于)

判断第一个数是否小于第二个数,也可用于多个数的连续比较。

(< 2 3) ; 返回 t
(< 3 2) ; 返回 nil
(< 1 2 3) ; 返回 t
1.1.2.3 >(大于)

判断第一个数是否大于第二个数,支持多个数的连续比较。

(> 3 2) ; 返回 t
(> 2 3) ; 返回 nil
(> 3 2 1) ; 返回 t
1.1.2.4 <=(小于等于)
(<= 2 2) ; 返回 t
(<= 2 3) ; 返回 t
(<= 3 2) ; 返回 nil
1.1.2.5 >=(大于等于)
(>= 3 3) ; 返回 t
(>= 3 2) ; 返回 t
(>= 2 3) ; 返回 nil

1.1.3 3. 逻辑运算符

1.1.3.1 and(逻辑与)

对多个表达式进行逻辑与运算,所有表达式都为真(非 nil)时返回最后一个表达式的值,否则返回 nil

(and t t) ; 返回 t
(and t nil) ; 返回 nil
(and (> 2 1) (< 3 4)) ; 返回 t
1.1.3.2 or(逻辑或)

对多个表达式进行逻辑或运算,只要有一个表达式为真就返回该表达式的值,所有表达式都为假时返回 nil

(or t nil) ; 返回 t
(or nil nil) ; 返回 nil
(or (< 2 1) (> 3 2)) ; 返回 t
1.1.3.3 not(逻辑非)

对单个表达式进行逻辑非运算,表达式为真时返回 nil,为假时返回 t

(not t) ; 返回 nil
(not nil) ; 返回 t
(not (> 2 3)) ; 返回 t

1.1.4 4. 列表操作运算符

1.1.4.1 cons(构造列表)

用于将一个元素和一个列表组合成一个新列表。

(cons 1 '(2 3)) ; 返回 (1 2 3)
1.1.4.2 car(取列表首元素)

返回列表的第一个元素。

(car '(1 2 3)) ; 返回 1
1.1.4.3 cdr(取列表除首元素外的部分)

返回列表除第一个元素外的其余部分。

(cdr '(1 2 3)) ; 返回 (2 3)
1.1.4.4 append(连接列表)

将多个列表连接成一个新列表。

(append '(1 2) '(3 4)) ; 返回 (1 2 3 4)

1.1.5 5. 赋值运算符

1.1.5.1 setf(赋值)

用于给变量赋值,可用于全局变量和局部变量。

(setf x 10) ; 将变量 x 赋值为 10

作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

http://www.dtcms.com/a/109509.html

相关文章:

  • c++基础-----c++ 成员变量初始化顺序
  • Cline – OpenRouter 排名第一的CLI 和 编辑器 的 AI 助手
  • NVR设备ONVIF接入平台搭建城乡安防网:雪亮工程智慧监管体系建设方案
  • K8s面试第一篇:初识Kubernetes——核心概念与组件详解
  • win10彻底让图标不显示在工具栏
  • 【万字总结】前端全方位性能优化指南(完结篇)——自适应优化系统、遗传算法调参、Service Worker智能降级方案
  • dd爱框框
  • Fiddler抓取app的包
  • Design Compiler:库特征分析(ALIB)
  • Multisim14.3的安装步骤
  • 图解AUTOSAR_SWS_LINDriver
  • MySql表达式中字符串类型与整型的隐式转换
  • 3dgs通俗讲解
  • JavaScript逆向魔法:Chrome开发者工具探秘之旅
  • C语言--寻找子串的下标
  • 优雅的理解神经网络中的“分段线性单元”,解剖前向和反向传播
  • 量子计算与经典计算的拉锯战:一场关于计算未来的辩论
  • 3.2/Q2,GBD数据库最新文章解读
  • 开源可视化大屏go-view前后端安装
  • 文献分享: DESSERT基于LSH的多向量检索(Part2——理论保证的证明)
  • 《K230 从熟悉到...》识别机器码(AprilTag)
  • OpenHarmony子系统开发 - 安全(十)
  • 【网络安全实验】PKI(证书服务)配置实验
  • 操作 Office Excel 文档类库Excelize
  • Python项目-基于Python的音乐推荐系统
  • 无需预对齐即可消除批次效应,东京大学团队开发深度学习框架STAIG,揭示肿瘤微环境中的详细基因信息
  • 在网络中加入预训练的多层感知机(MLP)有什么作用?
  • BT-Basic函数之首字母R
  • Opencv之dilib库:表情识别
  • 【Linux】-进程的控制(下)