|
Am 23.08.2015 um 12:50 schröbte John Hind:
Date: Sat, 22 Aug 2015 17:08:14 -0400 From: Sean Conner <sean@conman.org>I'll give "complex" a pass (given the the modifiers you can add), but where do you get "arbitrary" from?%d - decimal output of a number %o - octal output of a number %x - hexidecimal output of a number %s - string %f - float %q - quoted stringI'll give you a reciprocal pass on "arbitrary" then (though why 'x' for hexadecimal rather than 'h'?). My point is: why does this syntax not aspire to the same degree of readability as the rest of Lua? I do not think a proposal to shorten ALL of Lua's keywords to one letter prefixed by a randomly selected punctuation symbol (what have percentages got to do with string formatting?) would be considered sensible! (OK, I've just taken back my pass on "arbitrary"!)
Using a template language for string formatting instead of general purpose programming language constructs has the obvious benefit that the result strings look much more like the source strings. Short but eye-catching formatting instructions reinforce that benefit but also allow you to see at a glance where the result string will be different from the source string. When introducing a template language, it makes perfect sense to reuse (as far as possible) something preexisting and familiar instead of inventing yet another new language.
The situation is similar for string matching: Many patterns contain parts that should match verbatim, so a template language makes sense. Also, there is *one* widely used syntax for this, and it is regular expressions.
Regarding string (un)packing: I don't know whether there are preexisting and familiar languages for this (other than Roberto's struct library). However, I think that a "preview" with a strong resemblance to the final result makes sense there as well. I haven't used Lua's string (un)packing yet, so I can't say how good the resemblance really is.
Philipp