Я думал, что буду хорошо ладить с 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. Я тоже не могу их поменять или я получу противоположную проблему. Так что мне здесь делать?