Subtractive generator: Difference between revisions
Content added Content deleted
(Added PowerShell) |
(Added F# version) |
||
Line 648: | Line 648: | ||
380969305 |
380969305 |
||
</pre> |
</pre> |
||
=={{header|F_Sharp|F#}}== |
|||
<p>Similar to Haskell, using lazy evaluation.</p> |
|||
<lang fsharp>[<EntryPoint>] |
|||
let main argv = |
|||
let m = 1000000000 |
|||
let init = Seq.unfold (fun ((i, s2, s1)) -> Some((s2,i), (i+1, s1, (m+s2-s1)%m))) (0, 292929, 1) |
|||
|> Seq.take 55 |
|||
|> Seq.sortBy (fun (_,i) -> (34*i+54)%55) |
|||
|> Seq.map fst |
|||
let rec r = seq { |
|||
yield! init |
|||
yield! Seq.map2 (fun u v -> (m+u-v)%m) r (Seq.skip 31 r) |
|||
} |
|||
r |> Seq.skip 220 |> Seq.take 3 |
|||
|> Seq.iter (printfn "%d") |
|||
0</lang> |
|||
{{out}} |
|||
<pre>467478574 |
|||
512932792 |
|||
539453717</pre> |
|||
=={{header|Fortran}}== |
=={{header|Fortran}}== |