learning F#, it seems pretty cool, favourite functional language so far.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Grains.fs 450B

123456789101112131415
  1. module Grains
  2. let rec safeSqaure n: uint64 =
  3. if n = 1 then uint64 (1) else uint64 (2) * safeSqaure (n - 1)
  4. let square (n: int): Result<uint64, string> =
  5. if n < 1 || n > 64 then Error "square must be between 1 and 64" else Ok(safeSqaure n)
  6. let total: Result<uint64, string> =
  7. Ok
  8. (List.sumBy (fun x ->
  9. let s = square x
  10. match s with
  11. | Ok (n) -> n
  12. | _ -> uint64 (0)) [ 1 .. 64 ])