string.replace
действительно ожидает функцию для первого непомеченного параметра. Возвращаемое значение этой функции будет использоваться в качестве замены.
Пример:
str = "Hello world."
str = string.replace(pattern="w", (fun(_) -> "W"), str)
# str == "Hello World."
Встроенная стрелочная функция fun(_) -> "W"
- это функция, которая всегда будет возвращать "W"
.