(September 16, 2021 at 2:22 pm)HappySkeptic Wrote:(September 16, 2021 at 2:16 pm)FlatAssembler Wrote: What do you guys here think about using `?:` in lvalues, that is, on the left-hand-side of the assignment operator? I have added support for that to my programming language: https://flatassembler.github.io/AEC_spec...l_operator
I don't like using a ternary operator in an lvalue. It makes the code hard to read, and I rarely encounter a situation where it would be useful.
I don't know if it makes code significantly harder to read than ternary operators in expressions do. Do you think it does? Ternary operators in expressions, if used improperly, can make the code significantly harder to read, but that is not a reason for a language not to support them.
By the way, what do you think about what I wrote today in the introduction to the documentation for my programming language:
https://flatassembler.github.io/AEC_spec...troduction Wrote:I have also always been interested in languages, both natural and artificial (such as programming languages), and making a programming language will certainly give me a lot better insight into how programming languages really work. That is not quite true for natural languages: if you try to make your own constructed language to be spoken by humans (similar to Esperanto), and you do not know about consecutio temporum, you will most likely not specify how consecutio temporum is supposed to work in your language and you will probably not even realize your grammar has a hole in its specification (you will assume it is understood by itself it will be done the same way as in your native language, thinking, like I used to think before learning about consecutio temporum in English, that the way tenses are put together in complex sentences in your native language is based on logic, rather than that the rules for that are essentially-arbitrary). But it is true that making a programming language gives you a special insight into how programming languages, and computers in general, work. Especially if you are writing everything yourself (like I am doing), rather than using frameworks for tokenizing, parsing and compiling.