76 lines
9.0 KiB
Markdown
76 lines
9.0 KiB
Markdown
# Builtins
|
||
|
||
| Builtins | Type Args | Term Args | Result |
|
||
| --- | --- | --- | --- |
|
||
| `ifThenElse`[^1] | \\(α\\) | (bool, \\(α\\), \\(α\\)) | \\(α\\) |
|
||
| --- | --- | --- | --- |
|
||
| `addInteger` | \- | (integer, integer) | integer |
|
||
| `subtractInteger` | \- | (integer, integer) | integer |
|
||
| `multiplyInteger` | \- | (integer, integer) | integer |
|
||
| `divideInteger` | \- | (integer, integer) | integer |
|
||
| `modInteger` | \- | (integer, integer) | integer |
|
||
| `quotientInteger` | \- | (integer, integer) | integer |
|
||
| `remainderInteger` | \- | (integer, integer) | integer |
|
||
| `equalsInteger` | \- | (integer, integer) | bool |
|
||
| `lessThanInteger` | \- | (integer, integer) | bool |
|
||
| `lessThanEqualsInteger` | \- | (integer, integer) | bool |
|
||
| --- | --- | --- | --- |
|
||
| `appendString` | \- | (string, string) | string |
|
||
| `emptyString` | \- | (string) | bool |
|
||
| `equalsString` | \- | (string, string) | bool |
|
||
| `encodeUtf8` | \- | (string) | bytestring |
|
||
| --- | --- | --- | --- |
|
||
| `appendByteString` | \- | (bytestring, bytestring) | bytestring |
|
||
| `consByteString` | \- | (integer, bytestring) | bytestring |
|
||
| `indexByteString` | \- | (bytestring, integer) | integer |
|
||
| `sliceByteString` | \- | (integer, integer, bytestring) | bytestring |
|
||
| `lengthOfByteString` | \- | (bytestring) | integer |
|
||
| `equalsByteString` | \- | (bytestring, bytestring) | bool |
|
||
| `lessThanByteString` | \- | (bytestring, bytestring) | bool |
|
||
| `lessThanEqualsByteString` | \- | (bytestring, bytestring) | bool |
|
||
| `decodeUtf8` | \- | (bytestring) | string |
|
||
| --- | --- | --- | --- |
|
||
| `chooseData`[^2] | \\(α\\) | (data, \\(α\\), \\(α\\), \\(α\\), \\(α\\), \\(α\\)) | \\(α\\) |
|
||
| `constrData` | \- | (integer, list data) | data |
|
||
| `unConstrData` | \- | data | (integer, list data) |
|
||
| `iData` | \- | (integer) | data |
|
||
| `unIData` | \- | (data) | integer |
|
||
| `bData` | \- | (bytestring) | data |
|
||
| `unBData` | \- | (data) | bytestring |
|
||
| `mapData` | \- | (list (pair data data)) | data |
|
||
| `unMapData` | \- | (data) | list (pair data data) |
|
||
| `listData` | \- | (list data) | data |
|
||
| `unListData` | \- | (data) | list data |
|
||
| `equalsData` | \- | (data, data) | bool |
|
||
| `serialiseData` | \- | (data) | bytestring |
|
||
| --- | --- | --- | --- |
|
||
| `chooseList`[^3] | \\(α, β\\) | (list \\(α\\), \\(β\\), \\(β\\)) | \\(β\\) |
|
||
| `mkNilData` | \\(α\\) | (unit) | list \\(α\\) |
|
||
| `mkCons` | \\(α\\) | (\\(α\\), list \\(α\\)) | list \\(α\\) |
|
||
| `headList` | \\(α\\) | (list \\(α\\)) | \\(α\\) |
|
||
| `tailList` | \\(α\\) | (list \\(α\\)) | list \\(α\\) |
|
||
| `nullList` | \\(α\\) | (list \\(α\\)) | bool |
|
||
| --- | --- | --- | --- |
|
||
| `mkPairData` | \\(α, β\\) | (\\(α\\), \\(β\\)) | pair \\(α\\) \\(β\\) |
|
||
| `fstPair` | \\(α, β\\) | pair \\(α\\) \\(β\\) | \\(α\\) |
|
||
| `sndPair` | \\(α, β\\) | pair \\(α\\) \\(β\\) | \\(β\\) |
|
||
| --- | --- | --- | --- |
|
||
| `sha2_256` | \- | (bytestring) | bytestring |
|
||
| `sha3_256` | \- | (bytestring) | bytestring |
|
||
| `blake2b_256` | \- | (bytestring) | bytestring |
|
||
| --- | --- | --- | --- |
|
||
| `verifyEd25519Signature`[^4] | \- | (bytestring, bytestring, bytestring) | bytestring |
|
||
| `verifyEcdsaSecp256k1Signature`[^4] | \- | (bytestring, bytestring, bytestring) | bytestring |
|
||
| `verifySchnorrSecp256k1Signature`[^4] | \- | (bytestring, bytestring, bytestring) | bytestring |
|
||
| --- | --- | --- | --- |
|
||
| `error` | \\(α\\) | (unit) | \\(α\\) |
|
||
| `trace` | \\(α\\) | (string, \\(α\\)) | \\(α\\) |
|
||
|
||
[^1]: Returns the second argument when the predicate is `True`, and the third argument when `False`.
|
||
|
||
[^2]: Each argument corresponds to each of the constructors of a builtin data (in this order): constr, map, list, integer and bytestring. The evaluation will continue with whatever branch actually corresponds to the given term value.
|
||
|
||
[^3]: Returns the second argument when the list is empty, and the third argument otherwise.
|
||
|
||
[^4]: Arguments are respectively: the public key, the message and the signature
|