3
私はフィボナッチ数列を生成する関数があります。OCamlはフィボナッチ数のリストを作成
let rec fib n =
match n with
| (0 | 1) -> 1
| x when x > 0 -> (fib (x-2) + fib (x-1))
| _ -> raise (Invalid_argument "Negative value supplied to fib");;
が、それは言った番号のリストを返すようにするために、私が本当にしたいことはあるが。
let rec fib n list =
match n with
| (0 | 1) -> 1 :: []
| x when x > 0 -> (fib (x-2) list + fib (x-1) list) :: list
| _ -> raise (Invalid_argument "Negative value supplied to fib");;
しかし
File "main.ml", line 2, characters 4-174: Error: This expression has type int list but an expression was expected of type int
(4-174が一致ブロックに対応して2行目の文字が)はocamlc言う:私はこれを試してみました。私はこれが型 "int list"を返すようにしたいのですが、なぜint型を推論していますか? (+)
がパラメータとしてint
がかかるため
ああ、ありがとう!それはあなたがそれを指摘するときにとても明らかです... – user1044459
@ user1044459どのように解決しましたか?コードを共有していただけますか? – Erhan