Scheme 语法备忘录
- 定义变量或函数:语法
(define <name> <value>)
; - 定义宏:语法
(define-macro <name parameters> <body>)
。不同于函数,宏不会计算值,而是实现代码的替换,可以实现很多奇妙的功能,例如实现 for 循环:(define-macro (list-of map-expr for var in lst if filter-expr) `(map (lambda (,var) ,map-expr) (filter (lambda (,var) ,filter-expr) ,lst)))
- 运算符:加减乘正常,除法 quotient,取模 remainder;语法
(+ a b)
; - 数学运算:平方根 sprt,乘方 expt,自然对数 log,三角函数 sin, cos,tan, asin, acos等;
- 布尔值:#t #f;
- 条件语句:if 句语法
if <condition> <suite-1> <suite-2>
,为真执行 suite-1,为假执行 suite-2;cond 句语法为
不同于 switch,cond 会判断每一个条件;如果 conditions 全为简单变量,可以用 case 代替 cond;cond <condition-1> <suite-1> <condition-2> <suite-2> <condition-3> <suite-3> ...
- 数据结构:用 cons 建立 Pair 表示树形结构,必须以 nil 结束,语法为
(cons 1 (cons 2 (cons 3 nil)))
;用 car 取首元素,用 cdr 取除了首元素外的其他元素; - quote:用 ' 标记的表达式不计算值,只返回字面内容,
'(1 2 3)
返回一个 list; - quasi-quotation:类似 quote,但用
`
表示,内部可以通过在变量前加,
选择将其作为值处理,整体上类似 Python 的 .format() 方法。 - 内建函数:参考该网页
- lambda 表达式:语法
(lambda <parameter list> <body>)
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!