Minor note to those here: this potential confusion point is worsened by many software, including Discourse, as a literal
low..high in the markdown post source renders as
with the full ellipses. And the three dots was used for inclusive range in Rust in patterns, and the Swift syntax is
... for closed,
..< for half open.
Context is important for interpreting range syntax. It doesn’t help that English is ambiguous: working 9-5 is half open (you’re done at five, not still working through all of five), a budget of $200-$300 is usually closed; I think the pattern is for discrete versus continuous measurement?
There’s a reason that range syntax half open and off-by-one errors are such a huge deal in introductory coding classes. You have to choose one way or another, and it’s a toss up which people will expect.
Even mathematical syntax of [0, 10) (or is it [0…10[, or…) requires introduction to a reader that hasn’t seen it before. If the context is clear, e.g. when talking about a programming language, use the clear range syntax and semantics. In any other case, and maybe even for introductory articles where it might be clear, introduce the range syntax with a footnote or sidenote or such to clarify what it means. There’s no perfect solution because everyone brings their own expectations.