在 Haskell 中似乎无法正确排列(缩进)此代码。 出现错误:
parse error on input `<-'
任何人都可以发现错误在哪里:
evalListSplitAt n stratPref stratSuff [] = return []
evalListSplitAt n stratPref stratSuff xs = do ys` <- stratPref ys
zs` <- stratSuff zs
return (ys` ++ zs`)
where (ys,zs) = splitAt n xs
干杯。
您需要同等地缩进
do
块中的每一行。另外,请确保使用 '
作为变量名称,而不是 `
。 (也就是说,使用撇号而不是反引号。反引号用于使函数成为中缀,因此它们不能用作变量名的一部分。因此您可以使用撇号将某些内容命名为“x prime”:x'
。)所以你的代码应该看起来像这样:
evalListSplitAt n stratPref stratSuff [] = return []
evalListSplitAt n stratPref stratSuff xs = do ys' <- stratPref ys
zs' <- stratSuff zs
return (ys' ++ zs')
where (ys,zs) = splitAt n xs