在输入上获取解析错误'=';错误(haskell)
我的函数append获取列表[[a]、[b,c]、[d,e]]的列表并返回单个列表[a,b,c,d,e]。 我把它写在一个文件中,所以我不必使用“let”,但输入“=”时仍然会出现解析错误。有人能帮忙吗? 谢谢在输入上获取解析错误'=';错误(haskell),haskell,Haskell,我的函数append获取列表[[a]、[b,c]、[d,e]]的列表并返回单个列表[a,b,c,d,e]。 我把它写在一个文件中,所以我不必使用“let”,但输入“=”时仍然会出现解析错误。有人能帮忙吗? 谢谢 append::[[a]]->[a] 附加[[a]]=[a | len=长度a,n=1,头a++(a!!n),n[a] 附加[[a]]=[a |让len=长度a,让n=1,头a++(a!!n),n[a] 附加[[a]]=[a |让len=长度a,让n=1,头a++(a!!n),n
append::[[a]]->[a]
附加[[a]]=[a | len=长度a,n=1,头a++(a!!n),n
无论代码是否在文件中,您仍然需要使用let
在列表中定义局部变量。文件中的代码只会对顶级定义产生影响。本地定义保持不变
因此,代码的语法正确版本应该是:
append :: [[a]] -> [a]
append [[a]] = [ a | let len = length a, let n = 1, head a ++ (a !! n) , n < len]
-- ^^^ ^^^
append::[[a]]->[a]
附加[[a]]=[a |让len=长度a,让n=1,头a++(a!!n),n
无论代码是否在文件中,您仍然需要使用let
在列表中定义局部变量。文件中的代码只会对顶级定义产生影响。本地定义保持不变
因此,代码的语法正确版本应该是:
append :: [[a]] -> [a]
append [[a]] = [ a | let len = length a, let n = 1, head a ++ (a !! n) , n < len]
-- ^^^ ^^^
append::[[a]]->[a]
附加[[a]]=[a |让len=长度a,让n=1,头a++(a!!n),n对于len
和n
,您需要let
:
append [[a]] = [a | let len = length a, let n = 1, head a ++ (a !! n), n < len]
这相当于foldr
定义,但希望它对解决此类问题更有指导意义。对于len
和n
,您需要let
:
append [[a]] = [a | let len = length a, let n = 1, head a ++ (a !! n), n < len]
这相当于foldr
定义,但希望它对解决此类问题更有指导意义