(Haskell)柯里化后模式解析错误
(Haskell) Parse error in pattern after Currying
更改后出现解析错误:
h :: ([Int],Int,[Int])->[[Int]]
h ([],k,x) =[[]]
h(y:[],k,x) = [x++k:[y]]
h(y:xs,k,x)= [x++k:y:xs]++h(xs,k,x++[y])
为此:第 3 行
h :: [Int]->Int->[Int]->[[Int]]
h [] k x =[[]]
h (y:[]) k x = [x++k:[y]]
h y:xs k x = [x++k:y:xs]++h(xs,k,x++[y])
这条线有两个问题:
h y:xs k x = [x++k:y:xs]++h(xs,k,x++[y])
^^^^ ^^^^^^^^^^^^^
(1) (2)
- 你需要围绕这个模式 -
(y:xs)
- 与 C、Java、C# 等其他语言不同,在 Haskell 中,您不使用逗号分隔函数的参数。
更改后出现解析错误:
h :: ([Int],Int,[Int])->[[Int]]
h ([],k,x) =[[]]
h(y:[],k,x) = [x++k:[y]]
h(y:xs,k,x)= [x++k:y:xs]++h(xs,k,x++[y])
为此:第 3 行
h :: [Int]->Int->[Int]->[[Int]]
h [] k x =[[]]
h (y:[]) k x = [x++k:[y]]
h y:xs k x = [x++k:y:xs]++h(xs,k,x++[y])
这条线有两个问题:
h y:xs k x = [x++k:y:xs]++h(xs,k,x++[y])
^^^^ ^^^^^^^^^^^^^
(1) (2)
- 你需要围绕这个模式 -
(y:xs)
- 与 C、Java、C# 等其他语言不同,在 Haskell 中,您不使用逗号分隔函数的参数。