Итерация по строке и замена одиночных символов на подстроки в 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"

но это дает мне ошибку типа. Итак, как вы можете видеть, я потерян. Извините меня за плохое знание Хаскелла, но я все еще новичок в этом. Я действительно надеюсь, что некоторые из вас могут помочь мне здесь или дать мне толчок в правильном направлении. Не стесняйтесь задавать вопросы, если мне что-то неясно.

Заранее спасибо!

Джон

Ответы на вопрос(4)

Ваш ответ на вопрос