Combining our *Digits* and *permutations* implementations with F#’s built-in *Seq* functions, we really see how functional programming shines in describing complex algorithms simply.

let problem43a = let hasProperty p = let ddd = p |> Seq.skip 1 |> Seq.windowed 3 |> Seq.map Digits.toInt Seq.zip ddd [2;3;5;7;11;13;17] |> Seq.forall (fun (a,b) -> a % b = 0) permutationsAsc [0;1;2;3;4;5;6;7;8;9] |> Seq.filter hasProperty |> Seq.sumBy Digits.toInt64

## No comments:

## Post a Comment