equal
deleted
inserted
replaced
21 map :: "('a=>'b) => ('a list => 'b list)" |
21 map :: "('a=>'b) => ('a list => 'b list)" |
22 "@" :: "['a list, 'a list] => 'a list" (infixr 65) |
22 "@" :: "['a list, 'a list] => 'a list" (infixr 65) |
23 filter :: "['a => bool, 'a list] => 'a list" |
23 filter :: "['a => bool, 'a list] => 'a list" |
24 foldl :: "[['b,'a] => 'b, 'b, 'a list] => 'b" |
24 foldl :: "[['b,'a] => 'b, 'b, 'a list] => 'b" |
25 length :: "'a list => nat" |
25 length :: "'a list => nat" |
|
26 flat :: "'a list list => 'a list" |
26 nth :: "[nat, 'a list] => 'a" |
27 nth :: "[nat, 'a list] => 'a" |
27 |
28 |
28 syntax |
29 syntax |
29 (* list Enumeration *) |
30 (* list Enumeration *) |
30 "@list" :: "args => 'a list" ("[(_)]") |
31 "@list" :: "args => 'a list" ("[(_)]") |
72 foldl_Nil "foldl(f,a,[]) = a" |
73 foldl_Nil "foldl(f,a,[]) = a" |
73 foldl_Cons "foldl(f,a,x#xs) = foldl(f, f(a,x), xs)" |
74 foldl_Cons "foldl(f,a,x#xs) = foldl(f, f(a,x), xs)" |
74 primrec length list |
75 primrec length list |
75 length_Nil "length([]) = 0" |
76 length_Nil "length([]) = 0" |
76 length_Cons "length(x#xs) = Suc(length(xs))" |
77 length_Cons "length(x#xs) = Suc(length(xs))" |
|
78 primrec flat list |
|
79 flat_Nil "flat([]) = []" |
|
80 flat_Cons "flat(x#xs) = x @ flat(xs)" |
77 defs |
81 defs |
78 nth_def "nth(n) == nat_rec(n, hd, %m r xs. r(tl(xs)))" |
82 nth_def "nth(n) == nat_rec(n, hd, %m r xs. r(tl(xs)))" |
79 end |
83 end |