FParsec:使用列表元素参数化'parray n p`

时间:2014-03-07 12:55:45

标签: parsing f# fparsec

问题是:我知道我需要解析n p次出现,但我也有一个列表xs,我需要将一个元素传递给{{1}在每个应用程序上。将一个值传递给p很容易 - p - 但我不知道列表中需要访问哪个元素。

实现这一目标的最简洁方法是什么?

1 个答案:

答案 0 :(得分:1)

我到达的解决方案是:

let rec pmap f xs =
    match xs with
    | x :: xs -> parse { let! y = f x
                         let! ys = pmap f xs
                         return y :: ys }
    | [] -> parse { return [] }

然后可以将其用作:

let p x = ...
pmap p xs

仍然希望听到其他想法!