5 ms·
Well, if you learn about chars and then realise a string is a "string" of chars, then it's not so bizarre. If we're starting with ints before introducing floats
by doovd 5y ago
Well, if you learn about chars and then realise a string is a "string" of chars, then it's not so bizarre. If we're starting with ints before introducing floats, then why not start with chars before introducing strings.
- girvo 5y agoWe only apply that to strings though. float[] isn't a string of floats. And lots of languages have strings that aren't arrays of chars too, so I don't really think that's it either. Where does string come from. How odd.
- housecarpenter 5y agoYou do still hear people speaking of a string of bits, as well as a string of characters. I think the word "array" tends to be preferred for lists of numbers, since in its original sense in mathematics it was (and is) a synonym for "matrix". For lists of arbitrary objects I guess "array" won out by random chance, more or less.
- girvo 5y agoReally? Fascinating. I’ve not heard anyone call them that in my 20+ years of programming!
- nicoburns 5y agoWell, not all languages have chars. And even in those that do, strings are not always made up of them (e.g. in Rust, char is 32 bits and strings are utf8).
- nerdponx 5y agoBetter yet, stop calling them "strings". Call the type "text".
- dmkolobov 5y agoI am writing an l-system evaluator, and have explained the concept to non-programmer friends of mine several times now. I've found myself explaining the concept of "strings" over and over, so I've switched to calling it "text" in those situations. As a reasonably experienced programmer, however, this terminology makes me uncomfortable. To me, "text" implies a sequence of words written in a human language, rather than a sequence of arbitrary characters. It hints at structure which may not be present in a string.
- chriswarbo 5y agoI like the distinction made by Haskell: - A Byte (AKA Word8) is 8 bits. It has no inherent meaning. - A Character (AKA Char) is a Unicode code point. - A ByteString is a sequence of Bytes. It has no inherent meaning. - A Text (AKA String) is a sequence of Chars. In particular, Char != Byte and String != ByteString; we can juggle bytes without having to care about encodings; and we can manipulate text without having to care about its representation.
- dmkolobov 5y agoDefinitely appreciate how careful Haskell is about the distinction: it's where I first started having these thoughts!
- fnord77 5y agothen why isn't an int array called a "string" of ints?