-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a short discussion of string concatenation to the FAQ. #24487
Add a short discussion of string concatenation to the FAQ. #24487
Conversation
Rationale: even though JuliaLang#11030 was closed, there is discussion of the issue from time to time on Github and the forum; so if any question is frequently asked, this is.
See also #19643, perhaps link to that discussion also? |
doc/src/manual/faq.md
Outdated
@@ -593,6 +593,12 @@ julia> remotecall_fetch(anon_bar, 2) | |||
1 | |||
``` | |||
|
|||
### Why does Julia use "*" for string concatenation? Why not "+" or something else? | |||
|
|||
The [main argument](@ref man-concatenation) against `+` is that string concatenation is not commutative, while `+` is generally used as a commutative operator. While the Julia community recognizes that other languages use different operators and `*` may be unfamiliar for some users, syntax choices always have a subjective element and further discussions about this operator have not turned out to be productive, so it is not likely to change in the short run. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The nature of the discussion around the operator is not really relevant here. This reads a bit passive-aggressive to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry about that, English is not my first language. The intent was to convey the idea that the question has been given due consideration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wish something like this had been merged into the docs - my colleague and I were wondering why such an awkward operator was being used for string concatenation, and at least this provides the rationale. I mean, it still doesn't really make sense to me since *
is generally used for multiplication which is also a commutative operation (between scalars).
In any case, I think the first sentence of that explanation is great and would make a valuable addition to the docs i.e.
Why does Julia use "*" for string concatenation? Why not "+" or something else?
The [main argument](@ref man-concatenation) against
+
is that string concatenation is not commutative, while+
is generally used as a commutative operator.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe I can reword this. In the past year or so, this issue/discussion came up surprisingly rarely, so the FAQ may not need to address that part.
doc/src/manual/faq.md
Outdated
@@ -593,6 +593,12 @@ julia> remotecall_fetch(anon_bar, 2) | |||
1 | |||
``` | |||
|
|||
### Why does Julia use "*" for string concatenation? Why not "+" or something else? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can use code formatting in headings, so maybe update "*"
-> `*`
and likewise for +
?
doc/src/manual/faq.md
Outdated
|
||
The [main argument](@ref man-concatenation) against `+` is that string concatenation is not commutative, while `+` is generally used as a commutative operator. While the Julia community recognizes that other languages use different operators and `*` may be unfamiliar for some users, it communicates certain algebraic properties. | ||
|
||
Note that you can also use `string(...)` to concatenate strings (and other values converted to strings); similarly, `repeat` can be used instead of `^` to repeat strings. The [interpolation syntax](@ref string-interpolation) is also useful for constructing strings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Split up these two lines into multiple ones at around ~92 chars?
Rationale: even though #11030 was closed, there is discussion of the issue from time to time on Github and the forum; so if any question is frequently asked, this is.