Haskell-Let和Where中的多个语句导致错误
我用let编写了这段代码,它在最后一次输入时导致了一个errorparse错误Haskell-Let和Where中的多个语句导致错误,haskell,Haskell,我用let编写了这段代码,它在最后一次输入时导致了一个errorparse错误 mergeSort2 :: (Ord a) => [a] -> Int -> [a] mergeSort2 [] _ = [] mergeSort2 [a] _ = [a] mergeSort2 a = let first = take ((length a) `div` 2) a last = drop ((length a) `div` 2) a in if (f
mergeSort2 :: (Ord a) => [a] -> Int -> [a]
mergeSort2 [] _ = []
mergeSort2 [a] _ = [a]
mergeSort2 a =
let first = take ((length a) `div` 2) a
last = drop ((length a) `div` 2) a
in if (first > n) && (last > n)
then merge2 (mergeSort2 first) (mergeSort2 last)
else isertionsort a
以及导致相同错误的代码:
mergeSort2 :: (Ord a) => [a] -> Int -> [a]
mergeSort2 [] _ = []
mergeSort2 [a] _ = [a]
mergeSort2 a =
if (first > n) && (last > n)
then merge2 (mergeSort2 first) (mergeSort2 last)
else isertionsort a
where first = take ((length a) `div` 2) a
last = drop ((length a) `div` 2) a
但以下代码仍然有效,尽管在何处使用:
mergeSort :: (Ord a) => [a] -> [a]
mergeSort [] = []
mergeSort [a] = [a]
mergeSort a =
merge (mergeSort first) (mergeSort last)
where first = take ((length a) `div` 2) a
last = drop ((length a) `div` 2) a
源文件包含混合的选项卡和空格。例如,请注意,let行使用制表符缩进,但其下方的行使用空格缩进。要被视为具有相同的缩进,行必须使用完全相同的字符缩进,而不仅仅是某些制表符宽度设置看起来相同的字符。源文件包含混合制表符和空格。例如,请注意,let行使用制表符缩进,但其下方的行使用空格缩进。要被认为具有相同的缩进,行必须使用完全相同的字符缩进,而不仅仅是字符,对于某些制表符宽度设置,这些字符看起来是相同的。在这两个示例中,mergeSort2的最后一个等式中的Int参数在哪里?嗯,在我看来是可以的。检查是否始终使用空格来缩进任何制表符。旁注:使用空格比单独使用空格更有效。这就是它的用途。在这两个例子中,mergeSort2的最后一个等式中的Int参数在哪里?嗯,在我看来没问题。检查是否始终使用空格来缩进任何制表符。旁注:使用空格比单独使用空格更有效。这就是它的用途。