Haskell 中的模式匹配错误

error in patternmatching in Haskell

我正在编写一个函数,将布尔列表的列表以辱骂的方式映射到布尔列表中。这是我的代码:

y=[False| y<-[0..]]    
encode :: [[Bool]] -> [Bool]
encode x:xs =   (zip1 x y):True:True:(encode xs)
encode []=[]

zip1 函数只需要两个列表并将它们交替写入一个新列表。

我收到错误消息

Parse error in pattern: encode

为什么我会收到此错误消息?

函数应用的优先级高于:

因此,Haskell 解析

encode x:xs 

作为

(encode x):xs 

这毫无意义。你需要

encode (x:xs)