当前位置:  开发笔记 > 后端 > 正文

F#中列表开始的模式匹配更简单的方法

如何解决《F#中列表开始的模式匹配更简单的方法》经验,为你挑选了1个好方法。



1> kvb..:

我同意其他人认为使用字符列表进行严格的字符串操作可能并不理想.但是,如果您想继续使用这种方法,那么获得接近您要求的东西的一种方法是定义活动模式.例如:

let rec (|Prefix|_|) s l =
  if s = "" then
    Some(Prefix l)
  else
    match l with
    | c::(Prefix (s.Substring(1)) xs) when c = s.[0] -> Some(Prefix xs)
    | _ -> None

然后你就可以使用它:

let rec Process html =  
  match html with  
  | Prefix "-->" tail -> ("→" |> List.of_seq) @ Process tail  
  | head :: tail -> head :: Process tail  
  | [] -> []

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有