是的,仍然是,但你可以通过使用来解决这个问题error.
f (Just a) = show a
Run Code Online (Sandbox Code Playgroud)
没有案例Nothing给出警告但添加
f Nothing = error "f: Nothing supplied as an argument. This shouldn't have happened. Oops."
Run Code Online (Sandbox Code Playgroud)
摆脱警告.
你的问题的每个功能解决方案是给Haskell一些你认为永远不会运行的代码,以保持安静.
请注意:我认为您的代码应该是健壮的并涵盖所有可能性,除非您能证明它永远不会发生.我认为,解决这个限制并不是很好的做法.
(你可能认为这是一个广泛的后门,可以阻止一个有用的编译时检查,应该停止-Wall,但我可以混淆我的选择你选择的任何简单限制,我认为这个问题的完整解决方案会本质上解决了暂停问题,所以我们不要责怪编译器.)
| 归档时间: |
|
| 查看次数: |
765 次 |
| 最近记录: |