Итерация по строке и замена одиночных символов на подстроки в haskell
Я пытаюсь выучить немного Хаскелла, и мне трудно. У меня есть некоторые проблемы с моим текущим проектом. Идея заключается в том, что мне нужно пройти через строку и заменить некоторые символы новыми подстроками. Например, если у меня есть строкаFLXF» и я хочу заменить каждый F подстрокой под названием "ФНЧ» результат должен бытьFLFLXFLF», Сейчас я работаю над этой конкретной проблемой часами. Я читал о типах, различных функциях, которые могут пригодиться (карта, сгиб и т. Д.), И все же я не смог решить эту проблему.
Приведенный ниже код - это некоторые из моих попыток:
apply :: String -> String
apply [] = []
apply (x:xs) = if (x == 'F')
then do show "Hello"
apply xs
else (apply (xs))
Этот пример здесь я просто пытался показать привет каждый раз, когда я столкнулся с 'F', но все, что он показывает, это "", так что это явно не работает. Я действительно не уверен, что заявление if else - это путь сюда. Я также думал, что карта функций может помочь. Вот код, о котором я думал, может выглядеть примерно так:
map (\x y -> if y == 'F' then "FLD" else y) "FLF"
но это дает мне ошибку типа. Итак, как вы можете видеть, я потерян. Извините меня за плохое знание Хаскелла, но я все еще новичок в этом. Я действительно надеюсь, что некоторые из вас могут помочь мне здесь или дать мне толчок в правильном направлении. Не стесняйтесь задавать вопросы, если мне что-то неясно.
Заранее спасибо!
Джон