13 KiB
词汇表
象征
!
添加到标识符末尾的标记以指示它是过程,变量类型或变异运算符。
[#](../syntax/00_basic.md/# comment)
$
%
&
′ (single quote)
()
*
+
,
−
->
.
/
:
::
;
<
<:
<<
<=
=
==
=>
>
>>
>=
?
@
[]
\
^
^^
_
``
{:}
{=}
|
||
~
A
[algebraic type]
[And]
[and]
[assert]
[attribute]
B
[Base]
[Bool]
C
[Class]
D
Deprecated
[distinct]
E
[enum type]
[Eq]
[Erg]
F
[for]
G
H
I
[if]
[import]
[in]
[Int]
J
K
L
let-polymorphism -> [rank 1 polymorphism]
[log]
M
[match]
N
[Nat]
Never
None
[Not]
[not]
O
[Option]
[Or]
[or]
[Ord]
P
panic
print!
[Python]
Q
R
ref
ref!
[Result]
[rootobj]
S
self
Self
side-effect
[Str]
T
Traits
[True]
[Type]
[type]
U
V
W
[while!]
X
Y
Z
A line
[Assertion]
检查(通常在运行时)代码中的条件是否为真。 这是使用 assert
函数等来完成的。
sum = !0
for! 0..10, i =>
sum.add!i
assert sum == 55
值对象
在 Erg 中,相当于基础对象。 它可以在编译时进行评估,并且具有简单的比较方法。
附件补丁
为特征提供标准实现的补丁。
Ad hoc 多态性 -> 无重载
具有所谓重载的多态性。
属性-> [属性]
x.y
标识符中的 y
部分。
Arity
运算符需要多少个操作数。
依赖类型
参数是值的类型(习惯上说,不是类型)。
不可变 -> [不可变]
表示目标不会改变。 其他语言中的变量也是不可变/可变的,但是在 Erg 中所有的变量都是不可变的。
参数 -> [参数]
实例
由类创建的对象。 类类型的元素。
[即时封锁](../syntax/00_basic.md#expression separator)
x =
y = f(a)
z = g(b,c)
y+z
指数
形式为“x[i]”,或其“i”部分。我们称 x
为 Indexable 对象。
缩进
通过向空格移动将文本向右对齐。缩进。 Ergs 通过缩进表示块。这称为越位规则。
别名
别名。
错误
规范中定义的异常情况。
- [错误处理]
运算符
将操作应用于其操作数的对象。或表示该对象的符号。
- [运算符绑定强度]
覆盖
在子类中覆盖超类方法。
在 Erg 中,您必须在覆盖时添加 Override
装饰器。
不重载
越位规则-> 缩进
[目的]
- 面向对象
操作数 -> 操作数
运算符 -> 运算符
##嘉线
种类
所谓类型的类型。
[可见性]
标识符是否可以被外部引用(超出范围,或在另一个模块或包中)的属性。
[类型]
对术语进行分组的对象。
监视
封装
隐藏实现细节。
[多变的]
不能是一成不变的。
- [可变对象]
- [多变的]
- [变量参考]
- [变量数组]
- [可变参数]
函数
没有副作用的子程序。
基本类型
###主格
通过名称而不是对称结构来区分。
捕获-> [关闭]
[协变]
在 Erg 中,如果 T <: U
则 K(T) <: K(U)
则称 K
是协变的。
[关键字参数]
k
以函数调用 f(k: v)
的形式出现。您可以通过形式参数名称而不是按顺序指定实际参数。
空集 -> [{}]
部分
- 区间类型
- 区间运算符
嵌入式
Erg 标准 API 未在 .er 文件中实现。
类
具有继承功能的结构/抽象数据类型。在 Erg 中,它是一种实现命名子类型化和覆盖的类型。 在 Erg 中,模块是模块对象负责,类型是类型对象,而其他语言可能负责模块和类型。
[关闭]
[全局变量]
[克隆]
继承
定义一个类是另一个类的父类集。 继承的类称为超类,继承的类称为子类。 子类具有其超类的所有功能。
高楼层
- 高阶种类
- 高阶类型
- 高阶函数
[公共变量]
[结构子类型]
后向引用 -> [后向引用]
[复制]
评论
集合
冒号 -> [:]
构造函数
容器
编译器
[编译时计算](../syntax/04_function.md#compile-time function)
逗号 -> [,]
sa线
递归
参考自己。
- 递归
- 递归函数
下标 -> [索引]
子类型多态性
具有子类型的多态性。子类型对应于类型中的集合包含。
子程序
模块化处理的对象。 Erg 中函数、过程和方法的通用术语。
参考
- 参考对象
- [引用计数 (RC)](../syntax/18_memory_management.md#memory management)
- 引用相等 -> 副作用
[标识符](../syntax/02_variable.md/# 赋值)
签名
- 类型签名
dict
自然数 -> Nat
泛型 -> 泛型
发电机
投影类型
借用-> 参考
[阴影](../syntax/02_name.md# variables)
通过在内部范围内定义具有相同名称的变量来覆盖对变量的引用。
kind -> kind
大致类型的类型。
set -> set
在 Erg 中,它表示一个 Set 对象。
谓词
- 谓词函数
返回布尔类型的函数。
条件分支
所有权
对象唯一性的概念。 如果您拥有对象的所有权,则可以使用 mutable 参考它。
Boolean -> Bool
单例
从只能创建一个实例的类创建的实例。一种设计模式,可确保只创建一个类的一个实例。
[Symbol] -> Identifier
- 符号化
[脚本](../syntax/00_basic.md# 脚本)
包含 Erg 程序的文件。
范围
变量管理单元。外部作用域不能引用内部作用域中存在的变量。 当范围退出时,引用计数为 0 的对象将被释放。
扩展运算符 -> expansion assignment
切片
表示数组子序列的对象,以 x[a..b]
的形式生成。
控制字符
整数 -> Int
一组自然数加上负数。
设置
分号 -> ;
声明
显式类型变量。
全名
- 通用类型 -> 多态类型
- 封闭式通用
- 打开通用
- 通用函数 -> 多相关函数
- 通用量化
前缀运算符
运算符 ∘
以 ∘x
的形式应用。
相互递归
下标 -> index
属性
- 属性子类型
塔线
代数
- 代数类型
- 代数数据类型
赋值
多
- 多重继承
- 多重赋值
- 重载 -> [不重载]
多态性
- 多态类型
- 多相关系数
多态性 -> [多态性]
鸭子类型
元组
单相
- 单相
- 单相型
- 单相关系数
[延迟初始化]
提取分配
抽象语法树 -> [AST]
中缀运算符
运算符 ∘
以 x∘y
的形式应用。
常数
不可变的,编译时可评估的代数。
定义
分配与变量对应的对象。
提供的属性
可作为 API 使用的属性。特别是由特征自动实现的属性。
申请
将参数传递给函数对象并获取评估结果。
装饰器
@deco
f x = ...
语法糖,或“装饰”。大致等于_f x = ...; f = 装饰 _f
。 deco
本身只是一个高阶子程序。
析构函数
对象被销毁时调用的方法。
程序 -> procedure
读取和写入可变状态的子程序。 有时会说程序的执行结果可以根据调用过程的顺序而改变,但如果我们谈论交换性,这是不正确的。 例如,作为函数子类型的运算符通常不可交换。
[默认参数](../syntax/04_function.md/#default arguments default-parameters)
通过指定形式参数的默认值,可以在调用时省略实际参数的指定的函数。
扩张
- 扩展运算符
- 扩展分配
特殊格式
不能作为实际参数传递的对象。
匿名函数 -> anonymous function
由匿名函数运算符->
创建的函数对象。可以在不定义名称的情况下使用。
点运算符 (.
) -> attribute reference
顶部
- 顶部类型 -> [结构对象]
- 顶级 -> [对象]
特征
na line
理解
中缀运算符 -> 中缀运算符
命名空间
是一行
数组
[派生类型](../syntax/type/variances.md/# 用户定义的类型变体)
模式(匹配)
包
hashmap -> dict
补丁
公共变量-> public variables
参数 -> argument
参数多态
逆变
相比
- 比较运算符
- 可比类型
私有变量
标准
- 标准输出
- 标准输入
- 标准库
副作用
代码应该/不应该读/写外部可变状态。
复数 -> 复数
浮动 -> 浮动
私有变量 -> 私有变量
布尔代数-> Bool
程序
参数
部分类型 -> Subtyping
[不可变]
在 Erg 中,一个对象永远不应该改变它的内容。
- [不可变对象]
- [不可变类型]
- [不可变引用]
筛子类型
[堵塞]
解构赋值
变量
底部
- 底部类型 -> [{}]
- 底层 -> [从不]
[多态性]
ma line
~~ 前缀运算符 ~~ -> 前缀运算符
标记类型
匿名函数
可变 -> [可变]
[移动]
方法
元字符
模块
[字符串] -> [字符串]
- [字符串插值](../syntax/01_literal.md/#Str 字面量)
返回值
或行
幻像类型
请求属性
[元素]
[称呼]
拉线
[图书馆]
lambda 表达式 -> 匿名函数
排名
文字
- [文字标识符](../syntax/18_naming_rule.md/#literal identifier)
量化
布局
枚举
记录
- [记录类型]
- 记录多态 -> Column Polymorphism