JuliaLang/julia

replace: allow transform function as first argument?

Open

#24,598 opened on Nov 13, 2017

View on GitHub
 (17 comments) (6 reactions) (0 assignees)Julia (48,709 stars) (5,773 forks)batch import
good first issuehelp wantedstrings

Description

The replace function allows a string, an s"..." replacement specifier or a function as its third argument. For the sake of do syntax, it might make sense to support the function as the first argument, like so:

julia> replace("Hello, world.", r"\w+") do word
           n = 0
           for c in word
               n += lowercase(c) in "aeiou"
           end
           return n
       end
"2, 1."

If someone decides to do this, while they're at it, an explanation of replacement patterns – i.e. s"..." strings and some more examples in the replace docs wouldn't hurt. E.g.:

julia> replace("Hello, world.", r"(\w+)(\W+)(\w+)", s"\3\2\1")
"world, Hello."

Contributor guide