learning F#, it seems pretty cool, favourite functional language so far.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

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 ])