Строки неизменяемы (или, по крайней мере, скоро они станут), поэтому вы не можете изменить их содержимое. Вы, конечно, можете создать копию строки с одним другим символом, например,
let with_nth_char m c =
String.mapi (fun i b -> if i = m then c else b)
и
# with_nth_char 1 'E' "hello";;
- : string = "hEllo"
Но если вам нужно изменить символы в массиве, тогда вам не следует использовать тип данных string
, а вместо этого полагаться на bytes
, который является типом изменяемых строк. Вы можете использовать Bytes.of_strings
и Bytes.to_string
для перевода строк в байты и наоборот.