Самый простой способ (и это идиоматично в F #) - использовать метод String.Replace
следующим образом:
let str = "H1E1T1H1"
let result = str.Replace("1","OP")
Но в случае, если вы хотите FP только потому, что вы можете ...:)
"H1E1T1H1"
|> Seq.map (function | '1' -> "OP" | x -> string x)
|> String.concat ""
В случае, если вы хотите заменить один и тот же символ разными строками в соответствии с индексом символа
"H1E1T1H1"
|> Seq.mapi (fun i x ->
match i,x with
| (i, '1') when i < 4 || i > 6 -> "OP"
| (_, x) -> string x)
|> String.concat ""