1

sndタプルリストの最小値を見つける必要がありますが、タプル全体ではなく、タプルの最小要素のみを返したいです。残念ながら、次のコードで次のエラーが発生しましたが、その理由はわかりません。l 引数はタプルのリストです(float * float)

let rec minRight l = match l with
    | [] -> raise (Arg.Bad "minRight: empty list")
    | [x]-> x
    | (_,y)::xs -> min y (minRight xs)

エラー:

| (_,y)::xs -> min y (minRight xs)
Error: This expression has type 'a but an expression was expected of type
         'b * 'a

前もって感謝します。

4

2 に答える 2

2

以前の回答で言及された問題に加えて、ここに 1 つの問題があります。

| [x]-> x

タプルを返しますが、「タプルの snd 要素の最小値を返す」と言いました。

于 2013-04-02T16:40:58.253 に答える
0

おそらくあなたの問題は、関数minに名前を付けたことだと思いますが、標準の OCaml 関数も使用したいと考えていますmin。それは可能ですか?

OCaml にはオーバーロードがありません (代償として、パラメトリック ポリモーフィズムがあります)。そのため、物事には異なる名前を使用する必要があります。

于 2013-04-02T16:23:51.000 に答える