![]() |
1
8
代码对我来说很好。 我不确定这是你的意图还是巧合,但是你正在实现类似于“解析器组合器”的东西,这是许多学术论文的主题。我认为 Monadic Parser Combinators 可读性很强(它在haskell中有示例,但您应该能够将其翻译为f)。
关于函数组合运算符。我一般不太喜欢使用操作符,因为它经常混淆代码。然而,在您的示例中,这是很有意义的,因为您可以很容易地想象到
我唯一要做的小改动是为
这是更高级的描述,因此它删除了
如果您想进一步了解这一点,那么您可以查看本文并尝试编写允许您使用的f计算表达式生成器。
|
![]() |
2
3
这通常是很好的样式,但您缺少一些技巧,并且仍然有相当多的冗余。也许更像这样:
您可能更喜欢积累一个表示计算的值,而不是闭包,因为它使调试更加容易。 |
![]() |
Kon · OCaml中的模块类型语义 6 月前 |
![]() |
user20102550 · 如何在解析器中使用输入字符串 11 月前 |
![]() |
tijko · 处理整数数组时出现意外结果 1 年前 |
![]() |
David542 · 按列分区,按另一列排序 1 年前 |
|
Arnett Rufino · `max的输出是多少` 1 年前 |
![]() |
Adrian · 变量捕获:变量在函数闭包中的行为 1 年前 |