FunC 标准库
信息
本节讨论了 stdlib.fc 库,它包含了在 FunC 中使用的标准函数。
目前,该库只是最常用的 TVM 命令的汇编器的包装,这些命令不是内置的。库中使用的每个 TVM 命令的描述都可以在 TVM 文档部分找到。本文档也借用了一些描述。
文件中的 一些函数被注释掉了。这意味着它们已经成为了优化目的的内置函数。然而,类型签名和语义保持不变。
请注意,stdlib 中没有呈现一些不太常见的命令。总有一天它们也会被添加。
元组操作原语
名称和类型大多是自解释的。有关多态函数的更多信息,请参见 多态性与 forall。
请注意,目前原子类型 tuple
的值不能转换为复合元组类型(例如 [int, cell]
),反之亦然。
Lisp 类型列表
列表可以表示为嵌套的 2 元组。空列表通常表示为 TVM null
值(可以通过调用 null()
获得)。例如,元组 (1, (2, (3, null)))
表示列表 [1, 2, 3]
。列表的元素可以是不同类型。
cons
forall X -> tuple cons(X head, tuple tail) asm "CONS";
在 Lisp 类型列表的开头添加一个元素。