src/HOL/Examples/Functions.thy
changeset 81185 c5b398584f5e
parent 74192 852df4f1dbfa
equal deleted inserted replaced
81184:f270cd6ee185 81185:c5b398584f5e
   331 where
   331 where
   332   "collatz n =
   332   "collatz n =
   333     (if n \<le> 1 then Some [n]
   333     (if n \<le> 1 then Some [n]
   334      else if even n
   334      else if even n
   335        then do { ns \<leftarrow> collatz (n div 2); Some (n # ns) }
   335        then do { ns \<leftarrow> collatz (n div 2); Some (n # ns) }
   336        else do { ns \<leftarrow> collatz (3 * n + 1);  Some (n # ns)})"
   336        else do { ns \<leftarrow> collatz (3 * n + 1); Some (n # ns)})"
   337 
   337 
   338 declare collatz.simps[code]
   338 declare collatz.simps[code]
   339 value "collatz 23"
   339 value "collatz 23"
   340 
   340 
   341 
   341