I'd like to post a challenge about creating English texts, but I'm a little afraid that it might be too broad... any tips? The story created needn't have a coherent plot as long as it's grammatically correct, but again, that's hard to objectively define, is it not?
Also, see this very interesting story my sample program created for me: I can drive a smart joke! He says, "It must cook the mans!" She cooks the smart woman. We stop a computer. She says that it programs an annoying computer. I say that he must program an ugly piano! You say, "Who program they, a really annoying car?" She says, "Who is he, not capable?" We say that she programs a woman. We say, "We program the really annoying woman."
That's the kind of story to make, except more grammatically correct
@hyper-neutrino it's worse then, because of icky parentheses. Most of the time you don't need a variable amount of arguments, but you still have to use (,,)
@hyper-neutrino Well no, not really. Adding a 6 after it in Python 2 just outputs 6 with a space after it. It's basically a comma in py3 when put inside a print call.
Kinda off-topic, but just got to a page in a book that had the word "Neutrino" in it. Whatever, back on topic, don't steer off the discussion on (pre/post)fix
@ophact that's not legal as Python doesn't have a return value for print(), so it defaults to none, and none * 3 is undefined, and you can't add 4 to undefined
@RedwolfPrograms it makes more sense when you realize that you usually don't have a constant expression like that. Compare: negate +: 4 to lambda x: 4+-x
@Wezl trains are much more intuitive than unhelpful single-letter variable names, my language is optimized for trains, and negate +: 4 is better than -+4
Besides, math isn't supposed to have "oh, well what about this edge case" in notation. Math, and therefore its notation, should be clear before anything else
@rak1507 this is a circular argument. I'm saying variable arity is bad, and you're saying variable arity is good for making variable arity funcitons XD
You could write sin x as its Taylor expansion, but that makes it needlessly complex, so we use shortcuts like sin. You could try to define a complete hierarchy for all possible mathematical functions, but its much simpler (and clearer) to use constructs such as parentheses
And you can say that for programming, by writing readable code. I know that we don't exactly do that here, but in an ideal language, all statements would be obviously unambiguous to both the programmer and the computer
Writing a*-~a is a fault of the person who wants to show off, not the fault of the language. If you want it to be clear, write it as a*(a+1) (or whatever it is)
maybe not in languages like haskell where you can set your own operator precedence, and then you end up with libraries where you have code that goes x = a %%= b ||| c >>=> d and you have absolutely no clue what's going on
@cairdcoinheringaahing yeah, it's the authors fault/library writers fault for thinking 'ooh wouldn't it be nice if &>&%=<< was a special infix operator' but the language allowing that makes it more complex
well, english allows sentences like "the old man the boat" or "the complex houses married and single soldiers", does that make it a bad langua- oh wait, it is a bad language
this is like a maths/physics problem Clock A starts at 3:00 and moves at 50% of the speed of light Clock B starts at 8:00 and moves at 70% of the speed of light How many times within a 24 hour period will they be at the same time?
But an "incorrect" or a "broken" clock can still be wrong all the time. If a clock is 15 minutes fast, it's broken, but it still never shows the correct time