Ich habe versucht die Eulers in F # * und bin derzeit auf # 5. Mein Problem ist die Verwendung einer Funktion, die mehr als einen Parameter in einer Pipelineoperation benötigt.Übergeben von zwei Variablen in die Pipeline
Diese Funktion gibt richtig, ob den ersten Parameter, der von jedem Elemente eines Arrays teilbar ist, die der zweite Parameter ist:
let isDivisibleBy seq n =
seq
|> Seq.forall (fun x -> n % x = 0)
isDivisibleBy [|1 .. 10|] 2520 //true
jedoch die folgende Erklärung nicht funktioniert:
Seq.initInfinite
|> Seq.find isDivisibleBy [|1 .. 10|]
I den folgenden Fehler erhalten:
error FS0001: The type '((int -> 'c) -> seq<'c>) -> 'd' is not compatible with the type 'seq<'a>'
* "2520 ist die kleinste taub Das kann durch jede der Zahlen von 1 bis 10 ohne Rest geteilt werden. Was ist die kleinste positive Zahl, die durch alle Zahlen von 1 bis 20 teilbar ist „
Danke, Fyodor. Auch +1, um meinen Fehler mit initInfinite zu bemerken. –
Um die kleinste * positive * Zahl zu finden, müssen Sie 'id' durch' ((+) 1) 'ersetzen – CaringDev