(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)
  1. 你需要围绕这个模式 - (y:xs)
  2. 与 C、Java、C# 等其他语言不同,在 Haskell 中,您不使用逗号分隔函数的参数。