簡體   English   中英

如何在元組構造函數(OCaml)上進行模式匹配

[英]How can I do pattern matching on tuple constructors (OCaml)

我有以下幾種類型:

type letter = A | B | C | D (*...*)
type mix = Char of letter | Mix of (mix * int) list

我想創建一個函數,該函數計算mix letter的出現次數,但是很難正確地進行模式匹配。

let rec count_char letter mix = match mix with
    | Char l -> (*...*)
    | Mix (m, i) -> (*...*)

我收到此錯誤

Error: This pattern matches values of type 'a * 'b
       but a pattern was expected which matches values of type
       (mix * int) list

這並不是說這是一個元組,那就是它是你試圖去匹配一個元組元組的列表 Mix ((m, i) :: _)將起作用,但是除非您也具有與空列表匹配的分支,否則當然會導致部分匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM