X-Git-Url: http://git.euphorik.ch/?p=Scala.git;a=blobdiff_plain;f=Assignment_07-FSharp%2FAssignment_07-FSharp%2FProgram.fs;h=2a768cda85b5c8fb0cbe9b55152cbd229c9b41d1;hp=601ecdb1dc461cf574865781ce20245c75b5220b;hb=b9359b65a37229079e9209a3f05aa25ee4db8f35;hpb=e49a206d3f0e5101ac29fb00760c85f637c7fbc8 diff --git a/Assignment_07-FSharp/Assignment_07-FSharp/Program.fs b/Assignment_07-FSharp/Assignment_07-FSharp/Program.fs index 601ecdb..2a768cd 100644 --- a/Assignment_07-FSharp/Assignment_07-FSharp/Program.fs +++ b/Assignment_07-FSharp/Assignment_07-FSharp/Program.fs @@ -32,26 +32,21 @@ let question1 () = assert (b.Top = 3) let c : Stack = (Empty.Push <| Bar ()).Push <| Bar () - printfn "%A" <| - match c.Top with - | :? Bar -> true - | _ -> false + c.Top :> Bar |> ignore + c.Top :> Foo |> ignore let d : Stack<#Foo> = (Empty.Push <| Bar ()).Push <| Bar () - printfn "%A" <| - match d.Top with - | :? Bar -> true - | _ -> false + d.Top :> Bar |> ignore // Question 4. let question4 () = - let rec primesSieve sequence = + let rec sieve sequence = seq { let h = Seq.head sequence yield h - yield! primesSieve <| Seq.filter (fun m -> m % h <> 0) sequence + yield! sieve <| Seq.filter (fun m -> m % h <> 0) sequence } - let primes = primesSieve <| (Seq.initInfinite id |> Seq.skip 2) + let primes = sieve <| (Seq.initInfinite id |> Seq.skip 2) printfn "first primes: %A" <| (Seq.take 100 primes |> Seq.toList) []