私はF#*のオイラーを試していて、現在#5にいます。私の問題は、パイプライン操作で複数のパラメータを取る関数を使用している。パイプラインに2つの変数を渡す
この機能が正しく最初のパラメータが二番目のパラメータである配列の全ての要素で割り切れるかどうかを返します。
let isDivisibleBy seq n =
seq
|> Seq.forall (fun x -> n % x = 0)
isDivisibleBy [|1 .. 10|] 2520 //true
ただし、次の文は動作しません:
Seq.initInfinite
|> Seq.find isDivisibleBy [|1 .. 10|]
私は次のエラーが表示されます。
error FS0001: The type '((int -> 'c) -> seq<'c>) -> 'd' is not compatible with the type 'seq<'a>'
*「2520は最小の麻痺です1〜10の各数値で剰余を除算することができます。 1から20までの数字の全てで割り切れる最小の正の数はどのくらいです「
おかげで、フョードル:上記のコードから中間
let
Sを移動し、id
で冗長ラムダfun x -> x
を交換し、我々は最終的に答えを得ます。また、initInfiniteで私のエラーに気付くために+1。 –最小*正数*を見つけるには、 'id'を'((+)1) 'に置き換える必要があります。 – CaringDev