为了弄清楚 try
如何在秒差距中工作,我将其放入 ghci:
λ> parse (try $ string "a") "" "b"
Left (line 1, column 1):
unexpected "b"
expecting "a"
我不太确定我在期待什么,但这不是我所期待的,因为我认为 try
的全部目的是当预期的事情不是时不会导致错误在那里。
最佳答案
try
不会默默地吃掉错误,但当发生错误时它不会消耗任何 token (它会重置 token 流,又称回溯)。该错误仍然会发生,但您可以继续,就像解析器根本没有消耗任何 token 一样(通过使用 <|>
)。
关于haskell - `try` 在秒差距中的表现如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22888484/