zur*_*rab 10 recursion haskell ghci
在Graham Hutton 的"在Haskell中编程"的第6章中,有一个名为"6.5 Mutual recursion"的部分,其中包含以下示例:
even :: Int -> Bool
even 0 = True
even (n + 1) = odd n
odd :: Int -> Bool
odd 0 = False
odd (n + 1) = even n
Run Code Online (Sandbox Code Playgroud)
我想尝试一下.我把代码放在Hof.hs文件中,运行ghci(版本7.8.3),输入
:l Hof.hs
Run Code Online (Sandbox Code Playgroud)
并收到以下错误消息
Hof.hs:3:7: Parse error in pattern: n + 1 Failed, modules loaded: none.
为什么我收到此消息?代码是否在语法上过时了?
rig*_*old 19
n + k模式已从Haskell中删除,不再可用.写它像这样:
even :: Int -> Bool
even 0 = True
even n = odd (n - 1)
odd :: Int -> Bool
odd 0 = False
odd n = even (n - 1)
Run Code Online (Sandbox Code Playgroud)
请注意,对于负输入,此函数可能会失败,因此您可能希望使用它来扩充它abs.
| 归档时间: |
|
| 查看次数: |
2140 次 |
| 最近记录: |