0
私は自分のOCamlコードに不一致が発生していますが、何が問題なのかわかりません。私は唯一のケースを持つと問題がアップ出番を把握するためにそこから行く試みたが、私が受け取るエラーは、次のとおりです。一致失敗問題OCaml
Exception: Match_failure ("hw2.ml", 49, 0).
コード:
let rec compileStack(il : instr list) (st : float list) =
match (il,st) with
[],[_] -> List.hd st
|((Push f)::t),[_] -> compileStack t (f::st)
|(Swap)::t, h2::h1::st -> compileStack t (h2::h1::st)
|(Calculate op)::t, h1::h2::st ->
match op with
Plus -> compileStack t (h2+.h1::st)
| Minus -> compileStack t (h2-.h1::st)
| Times -> compileStack t (h2*.h1::st)
| Divide -> compileStack t (h2/.h1::st) ;;
let execute (li : instr list) : float =
let stack = [] in
compileStack li stack;;
任意の提案は非常に立ち往生され、理解されるであろうこれで2時間今
ここで、ライン49ですか? –
失敗したテストの入力データは何ですか?ちなみに、(il、st)のパターンマッチングは網羅的なものではありません。これはあなたの問題だと思われます。 –