learning F#, it seems pretty cool, favourite functional language so far.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

CollatzConjecture.fs 335B

123456789101112
  1. module CollatzConjecture
  2. let rec countSteps counter n =
  3. match n with
  4. | 1 -> counter
  5. | _ when n % 2 = 0 -> countSteps (counter + 1) (n / 2)
  6. | _ -> countSteps (counter + 1) (n * 3 + 1)
  7. let steps (number: int): int option =
  8. match number with
  9. | _ when number < 1 -> None
  10. | _ -> Some(countSteps 0 number)