equal
deleted
inserted
replaced
25 fun make_llist :: "'a\<Colon>heap list \<Rightarrow> 'a node Heap" |
25 fun make_llist :: "'a\<Colon>heap list \<Rightarrow> 'a node Heap" |
26 where |
26 where |
27 [simp del]: "make_llist [] = return Empty" |
27 [simp del]: "make_llist [] = return Empty" |
28 | "make_llist (x#xs) = do tl \<leftarrow> make_llist xs; |
28 | "make_llist (x#xs) = do tl \<leftarrow> make_llist xs; |
29 next \<leftarrow> Ref.new tl; |
29 next \<leftarrow> Ref.new tl; |
30 return (Node x next) |
30 return (Node x next) |
31 done" |
31 done" |
32 |
32 |
33 |
33 |
34 text {* define traverse using the MREC combinator *} |
34 text {* define traverse using the MREC combinator *} |
35 |
35 |
36 definition |
36 definition |