ligo/src/test/contracts/list.ligo

34 lines
881 B
Plaintext
Raw Normal View History

// Test list type and related built-in functions in PascaLIGO
type foobar is list (int)
2019-05-12 20:56:22 +00:00
const fb : foobar = list [23; 42]
2019-05-12 20:56:22 +00:00
2019-09-08 12:34:29 +02:00
const fb2 : foobar = 144 # fb
const fb3 : foobar = cons (688, fb2)
2019-09-08 12:34:29 +02:00
function size_ (const m : foobar) : nat is size (m)
2019-05-12 20:56:22 +00:00
// function hdf (const m : foobar) : int is hd (m)
2019-05-12 20:56:22 +00:00
const bl : foobar = list [144; 51; 42; 120; 421]
function fold_op (const s : list (int)) : int is
block {
function aggregate (const prec: int; const cur: int) : int is prec+cur
} with List.fold (aggregate, s, 10)
function iter_op (const s : list (int)) : int is
block {
var r : int := 0;
function aggregate (const i : int) : unit is
block { r := r + i } with unit;
List.iter (aggregate, s)
} with r
function map_op (const s : list (int)) : list (int) is
block {
function increment (const i : int) : int is i+1
} with List.map (increment, s)