1

Невозможно правильно выровнять (отступы) этот код в Haskell. Получение ошибки:Ошибка синтаксического анализа 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 

Приветствия.

ответ

9

Вам необходимо отложить каждую линию в блоке одинаково. Кроме того, обязательно используйте ' для имен переменных, а не `. (Т. Е. Использовать апостроф, а не обратную сторону). Backticks используются для создания функций infix, поэтому они не могут использоваться как часть имени переменной. Таким образом, вы можете назвать что-то «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 
Смежные вопросы