因为我在 Haskell 上表现不错,所以我认为我可以与 F# 相处得很好,但我觉得我被一些简单的问题难住了。我有一些简单的 JSON 解析器的解析代码,如下所示:
let rec parseObject tokens = function
| '"' :: cs -> parseString tokens cs
| ':' :: cs -> parseValue tokens cs
| '}' :: cs -> tokens, cs
...
let rec parseValue tokens = function
| c :: cs when Char.IsWhiteSpace(c) -> parseValue tokens cs
| '{' :: cs -> parseObject tokens cs
...
那是行不通的,因为 parseObject 不知道 parseValue。也不能扭转它们,否则我会遇到相反的问题。那么我应该在这里做什么?