equal
deleted
inserted
replaced
220 (if n \<le> 1 then Some [n] |
220 (if n \<le> 1 then Some [n] |
221 else if even n |
221 else if even n |
222 then do { ns \<leftarrow> collatz (n div 2); Some (n # ns) } |
222 then do { ns \<leftarrow> collatz (n div 2); Some (n # ns) } |
223 else do { ns \<leftarrow> collatz (3 * n + 1); Some (n # ns)})" |
223 else do { ns \<leftarrow> collatz (3 * n + 1); Some (n # ns)})" |
224 |
224 |
225 declare collatz.rec[code] |
225 declare collatz.simps[code] |
226 value "collatz 23" |
226 value "collatz 23" |
227 |
227 |
228 |
228 |
229 text {* Tail-recursive functions: *} |
229 text {* Tail-recursive functions: *} |
230 |
230 |