Haskell 输入 `<-'

问题描述 投票:0回答:1

在 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

干杯。

haskell compiler-errors functional-programming ghc
1个回答
9
投票

您需要同等地缩进

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
© www.soinside.com 2019 - 2024. All rights reserved.