TeaScript特殊符号求值

简介: TeaScript 是一种灵活的脚本语言,其对 `nil` 和 `true` 的处理具有特殊规则:求值时,`nil` 和 `true` 返回自身,而 `false`、`undefined` 和 `null` 均返回 `nil`。在不同上下文中,`nil` 和 `true` 可代表符号或布尔值。

​1.nil 和 true 求值时,返回自身

nil → nil 
true → true

2.false、undefined 和 null 求值时,返回 nil

false → nil
undefined → nil
null → nil

3.TeaScript 中,nil 和 true 有两层含义:代表符号和代表布尔值。 根据它们所处的上下文不同,nil 和 true 被分别对待。

(setq lst '(nil nil nil)) → (nil nil nil)
(map symbol? lst) → (true true true)

上例中,nil 代表符号。下面例子中, nil 和 true 求值为布尔值:

(if nil "no" "yes") → "yes"
(if true "yes" "no") → "yes"
(map not lst) → (true true true)

4.在流程控制表达式中,如:if、unless、while、 until 和 not,nil 求值产生布尔值 false, true
求值产生布尔值 true。

5.TeaScript 中,nil 和空列表 () 是不同的东西。 仅当使用于条件表达式中时, 如:and、or、if、while、 unless、until 和 cond,它们视为布尔值 false。

6.表达式 (cons 'x '()) 求值时产生 (x),但 (cons 'x nil) 求值为 (x nil)。 因为 nil 求值时视其为布尔值而不是空列表。 TeaScript 中,对于代入两个原子型参数的 cons 函数不会产生点对列表,而是生成一个包含两个元素的列表。对于 nil 判别函数 atom? 结果为 true ,但对于空列表则相反false。因此,TeaScript 中的空列表仅只是空列表, 而不等于 nil。

7.this 符号在构造函数中求值时,返回新创建的对象。调用方法时,返回当前调用者对象。

8.arguments 求值时,返回函数代入的所有实际参数列表。

相关文章
|
存储 移动开发 开发框架
【微信小程序 | 实战开发】常用小程序框架介绍
【微信小程序 | 实战开发】常用小程序框架介绍
4485 0
【微信小程序 | 实战开发】常用小程序框架介绍
|
8月前
|
运维 前端开发 数据可视化
【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统
本文分享了一个基于React 19构建的用户注册表单系统,采用模块化CSS和状态驱动视图更新,实现实时校验、错误提示与提交反馈等功能。核心亮点包括验证规则引擎(如密码复杂度校验)、交互反馈体系(输入框警示、按钮禁用)及加载动画优化。通过函数式更新确保状态同步,正则表达式实现多条件验证,CSS伪元素打造流畅体验。代码结构清晰,可扩展性强,适合作为React表单开发模板。文末附CodeBuddy免费下载链接,助力高效开发!
231 1
【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统
|
8月前
|
机器学习/深度学习 人工智能 机器人
魔搭社区模型速递(5.11-5.17)
🙋魔搭ModelScope本期社区进展:📟1656个模型,151个数据集,645个创新应用,📄 9 篇内容
391 11
|
9月前
TeaScript数值书写规则
本内容介绍了数值的多种表示形式,包括十进制整数(如`14123`)、十六进制整数(如`0xFF`)、八进制整数(如`012`)以及实数(如`1.23`)。十进制和实数可带正负号,实数含小数点,支持科学计数法(如`1.23e3`)。十六进制以`0x`开头,八进制以`0`开头,各有对应数字范围。
370 71
|
8月前
|
编解码 数据可视化 定位技术
Axure设计数字乡村可视化大屏:从布局到交互的实战经验分享
本文以Axure为工具,分享数字乡村可视化大屏的设计全流程。从需求分析到功能拆解,明确民生、经济、历史文化和空间分布四大维度,将大屏划分为左、中、右三区,涵盖10个统计模块。详细解析了各区域的图表设计与交互实现,如柱状图、环形图、时间轴等,并通过模块化设计和动态交互(如数据联动、弹窗详情)提升用户体验。最后总结避坑指南,强调数据可视化、交互友好及模块复用性,助力实现“数据驱动决策”的核心目标,推动乡村治理数字化转型。
442 132
|
8月前
|
人工智能 前端开发 JavaScript
【CodeBuddy】三分钟开发一个实用小功能之:CSS代码瘦身专家
本文展示了AI编程从概念到实践的革命性突破,以一个CSS代码优化工具为例,说明AI如何在3分钟内完成传统开发需2天的任务。文章详细解析了AI在垂直领域工具开发、高频技术场景覆盖及代码维护优化中的应用,并探讨了智能上下文感知、模式识别优化等核心功能。同时,面对语义理解与逻辑验证等挑战,AI结合开发者补充规则,实现人机协同。最终总结指出,AI编程并非取代开发者,而是助力效率提升,推动“需求即代码”的未来方向,开启软件开发新纪元。
181 4
【CodeBuddy】三分钟开发一个实用小功能之:CSS代码瘦身专家
|
9月前
|
人工智能 JavaScript 前端开发
TVM虚拟机
TVM引擎是一款超微型、多功能的编程工具,支持多种语法(如Lisp、JavaScript等),拥有几百个实用函数。其核心优势包括快速加载执行、跨平台运行(Windows、Linux等)、源代码链接生成独立文件及嵌入宿主系统作为开发语言平台。此外,它具备动态脚本特性、符号单元运算、面向对象原型继承、函数式编程特点,以及C语言底层操作能力。TVM还支持弱类型数据处理、多态函数、内存垃圾自动回收、正则表达式文本处理和网络编程接口,广泛应用于分布计算、科学统计及人工智能等领域。
|
9月前
TVM虚拟机应用实例
TVM虚拟机应用实例
|
8月前
#我用Qwen3做了英语老师玛丽# 、#阿里云百炼#,@通义大模型
通过Qwen3创建了名为“玛丽”的英语老师智能体,具备解决学生英语问题的多种功能。她能用英语描述天气、翻译古诗词、撰写英语作文,还帮助了解外国文化、饮食与风俗习惯。相比以往版本更易使用,体验更佳。已完成功能设计与发布流程,感兴趣者可尝试使用。
239 12
|
8月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
224 3