Вам необходимо одинаково отступать каждую строку в блоке 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