我正在尝试对 Haskell 中的 do 语句进行脱糖处理。我在这里找到了一些例子,但无法将它们应用到我的案例中。
我唯一能想到的是一个沉重的嵌套 let 语句,这看起来很丑陋。
其中 do 表示法应替换为 bind 的语句:
do num <- numberNode x
nt1 <- numberTree t1
nt2 <- numberTree t2
return (Node num nt1 nt2)
任何意见都将受到高度赞赏 =)
numberNode x >>= \num ->
numberTree t1 >>= \nt1 ->
numberTree t2 >>= \nt2 ->
return (Node num nt1 nt2)
请注意,如果您使用 Applicatives,这会更简单:
Node <$> numberNode x <*> numberTree t1 <*> numberTree t2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)