Maybe it confuses me because I'm not a native speaker. Would you suggest we 
leave it alone (for now)?

On Thursday, January 18, 2018 at 4:11:16 PM UTC+1, OvermindDL1 wrote:
>
> I'd probably have chosen String.repeat, however String.duplicate makes 
> sense to me grammatically as well as duplicating tends to be used 'as' 
> multiplication in common speech (around where I am anyway, central USA).
>
>
> On Thursday, January 18, 2018 at 2:59:32 AM UTC-7, Timotej Fartek wrote:
>>
>> Hello! First of all, good job on Elixir. It really is a joy to build 
>> applications with it.
>> Now about my proposal. I think that the function "duplicate/2" in the 
>> module String can be a bit confusing with the current naming. When I read 
>> "duplicate", the thing that immediately pops into my mind is "make a copy 
>> of", "multiply by two" etc. so when I'm working with String.duplicate I'm 
>> always a bit confused as to what is going to happen with my string.
>> If I call String.duplicate("a", 2) to me it looks like the end result is 
>> going to be "aaaa", because we take "a", we duplicate it (so it's "aa") and 
>> then we duplicate that again (because n=2), and return "aaaa". Of course 
>> this assumption is wrong as the end result is "aa".
>> What String.duplicate actually does is *multiply the string n times*. 
>> Python (the language) has this simplified to the point where you actually 
>> write "a" * 2, to get the result "aa".
>> I suggest we do something similar with Elixir and come up with a better 
>> name for the duplicate function. I propose String.repeat or String.multiply 
>> but I am also open to other ideas if you think this might cause extra 
>> confusion. The most technically correct version of the name in my opinion 
>> would be String.multiply, because even with String.repeat there could be 
>> some confusion: does String.repeat("a", 1) return "a" or "aa"?
>> I would like to make a pull request with the new function but first I 
>> want to hear what the community thinks about this idea.
>> Another version of the name could be "times". String.times("a", 1) would 
>> in my opinion clearly return "a". String.times("a", 3) would clearly return 
>> "aaa". 
>>
>> Anyway this post is long enough as is 😅.
>> Thanks again for the wonderful work so far!
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/47a596c7-c53c-4981-97d0-a7afbe5c48d2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to