Skip to content

<h1 align="center">软工科学导论笔记</h1>

运算

(+ x y)

(- x y)

(* x y)

(/ x y)

PS: 在lisp中,没有精确的小数,只有无限逼近(+ 0.1 0.2),结果为0.30000000000000004

函数

(define (func var...)

​ (exe)

​ ...

​ output)

条件语句

  • (if (condition)

​ true

​ false)

  • (cond [(condition) (true)]

​ [(condition) (true)]

​ ...

​ [else (true)])

PS: 任何值都为true,只有#f才为false

逻辑判断

  • (and x y ... z) (or x y ... z)
  • (not bool) (= x y ... z)
  • (> x y ... z) (< x y ... z)
  • (>= x y ... z) (<= x y ... z)

Practice: and,or,not 任选其二实现另一

常用函数方法

效果表达式
取相反数(- x)
取绝对值(abs x)
取余(remainder x y)
是否为空列表(null? list) // 非列表都返回#f
是否为序对(pair? list) //非空的列表都返回#t
对象本身是否相同(eq? x y)
对象的值是否相同(eq? x y)
打印一个换行(newline)
打印(display x)
格式化文本(format “hello ~a” var)<br>//占位符: ~a 通用 ~s 字符串 ~e 科学计数法 ~f小数<br>//~[width].[precision]f 宽度+精度
求平凡根(sqrt x)
匿名函数((lambda (若干形参) (过程体)) 若干实参)
创建临时变量执行指令(let ([a x] ... [b y]) expr)

List

方法作用
list构造列表
cons构建列表(基于序对)
car获取头部元素
cdr获取除头部外的剩余元素
append将多个列表合并成一个新的列表
take从列表头部获取指定数量的元素
drop从列表头部开始删除指定数量的元素后获取剩余部分
sort对列表进行排序
member简单搜索是否存在
length获取列表长度
null?列表是否为空
first获取列表第一个元素
last获取列表最后一个元素

Vector

记录学习,分享技术