如果我有如下功能:
f::[a]->Integer
f [] = 0
f (x:cx) = 1 + (f cx)
Run Code Online (Sandbox Code Playgroud)
如何用'let'定义main内部的函数?
我知道我可以在main中定义一个函数:例如
let f x = x + 1
Run Code Online (Sandbox Code Playgroud)
但我是如何模式匹配的"f [] = 0"呢?
谢谢
你仍然可以这样做:
main =
let f [] = 0
f (x:cx) = 1 + (f cx)
in
print (f "abc")
Run Code Online (Sandbox Code Playgroud)
要么
main =
let
f [] = 0
f (x:cx) = 1 + (f cx)
in
print (f "abc")
Run Code Online (Sandbox Code Playgroud)
关键部分是f两个方程中的s必须排列并且缩进超过let.
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |