movex [] a s = []
movex (x:xs) a s
| elem a x = moveNow x a s
| otherwise = x : (movex xs a s)
where
moveNow x a s
| s == 'l' = moveNow2 x a
where
moveNow2 [] _ = []
moveNow2 (x:y:xs) a
| x == ' ' && y == a = a : x : moveNow2 (y:xs) a
| otherwise = x : moveNow2 (y:xs) a
< - Это то, что я получил прямо сейчасHaskell пытается мутировать строку в [String]
Я пытаюсь сделать функцию, которая перебирает [строки], находит правильную строку, а затем мутирует его ,
данный вход
func ["abc", "dfg"] f l -- move f in this list 1 space left --
ожидается выход
["abc", "fdg"]
Прямо сейчас я застрял на функции MOVEX, что дает мне ошибку
Couldn't match expected type `Char' with actual type `[Char]'
In the first argument of `(:)', namely `x'
In the expression: x : (movex xs a s)
'| elem a x = moveNow x a s', но как насчет xs? Как вы можете отказаться от него? Возможно, попробуйте предоставить свои функции явным типам подписей. –
Каково использование этого условия 'x == '''? – karakfa
использование для условия 'x == ''' заключается в проверке, является ли x символом пробега или нет –