0
我遇到了模式匹配變長度和類型的元組。匹配不同長度和類型的元組(ocaml)
let test = ((6, 10), (3, "1", 9), ([2; "5"], 4, 7, "8"));;
let rec extract_min_int arg =
match arg with
| (a, b, c) ->
min (extract_lowest_int a) (min (extract_lowest_int b) (extract_lowest_int c))
| (a, b) -> min (extract_lowest_int a) (extract_lowest_int b)
| `int i -> i
| _ -> infinity
;;
extract_min_int test;;
我期待這個函數調用返回2,但我得到了下面的錯誤,而不是:
錯誤:此模式相匹配的類型「A *」的b值,但預期的模式相匹配的值類型'c *'d *'e
我對ocaml相當陌生。這個錯誤正在否定我正在嘗試做什麼,它與不同長度/類型的元組匹配。
我還有什麼其他選擇來完成此任務?
嗯,你爲什麼要創建一個像這樣的數據混亂?順便說一下'let test ='中有一個錯字。而你無法匹配它,因爲它沒有結構(看起來像那樣) – 2015-04-02 20:26:42