Sisal 3.2 语言特性概述
1. 范围指定与维度绑定
Sisal 3.2 支持使用点运算符绑定维度来指定范围。例如:
// array
[ [ 1 ,
0 ,
0] ,
[0 ,
2 ,
0] ,
[0 ,
0 ,
3 ] ]
array
[ . . 3 ,
. . 3 ]
of
[ . .
dot
. .
:= 1 ,
2 ,
3 ;
else := 0 ]
维度范围索引可以命名并在同一范围内重复使用,从而形成三角形数组,示例如下:
// array
[ [ 2 ,
0 ,
0] ,
[0 ,
4 ,
0] ,
[0 ,
0 ,
6 ] ]
array
[ . . 3 ,
. . 3 ]
of
[ i
in
. .
dot j
in
. .
:=
i+j ;
else := 0 ]
2. 新的语言抽象
为了提高算法抽象水平,Sisal 3.2 引入了参数化类型、契约和广义过程(函数和操作)的新概念。
- 参数化类型 :定义了一组类型,与现有的类型集相比,能实现更精细的控制。例如,经典类型集无法定义具有两个相同类型字段的记录集,而参数化类型可以做到。
- 契约 :另一种抽象形式,允许将一组对作为契约参数列出的类型的操作绑定
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



