【发布时间】:2011-04-28 07:21:56
【问题描述】:
我认为我可以与 F# 相处得很好,因为我在 Haskell 方面表现不错,但我觉得我被一些简单的问题难住了。我有一些简单 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。也不能扭转它们,否则我会遇到相反的问题。那么我应该在这里做什么呢?
【问题讨论】:
标签: f# functional-programming mutual-recursion