src/HOL/ex/Fundefs.thy
changeset 40169 11ea439d947f
parent 40111 80b7f456600f
child 41413 64cd30d6b0b8
equal deleted inserted replaced
40166:d3bc972b7d9d 40169:11ea439d947f
   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