学习语言

容器与迭代

使用列、典、下标、容器原语与统一迭代语义。

列、元组与典

 名录:「甲」「乙」】;
追加(名录,「丙」);
 名录【1「仲」
 名录【0】;
 弹出(名录);

 次序: {「甲」1「仲」2};
 次序【「丙」 3
 次序【「仲」】;
 有键(次序,「丙」);

列可用【】[]。典使用{键:值},键仅可为数、文、理或空;重复键保留原位置并更新值。

列下标和文字下标须为从零开始的非负整数。读取不存在的键或越界下标会产生可捕获错误。长度适用于文字、列和典;追加弹出会原地修改列。

不可变元组

 坐标:102030);
 坐标【1】;
 长度(坐标);
 坐标 等于102030);

含逗号的圆括号表达式是元组;(值,)表示单项元组,(值)仍是普通分组。元组不可按下标改写,使用结构相等:长度相同且各项依次相等时,两个元组相等。

半开切片

「甲」「乙」「丙」】【13】; # 【乙,丙】
102030)【1:】;             # (20,30)
「天地玄黄」【:2】;               # 天地

列、元组和文字支持值【起:止】切片,包含起点、不包含终点。任一端点都可省略;新列和新元组拥有独立的外层容器,内部元素仍遵循原值的引用语义。端点须为非负整数,起点不可大于终点,终点不可超过长度。

统一迭代

 项: 名录 
 项;


 次序 
 次序【键】;

逐列或元组得到元素,逐文字得到单字符文字,逐典得到键。每次迭代的变量都是新的不可改写绑定,闭包可安全捕获当次值。

迭代期间发生的下标错误或用户代码错误,可以使用结构化错误处理捕获。