[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Mutable strings (Was: Hash Table Collisions (n.runs-SA-2011.004)
- From: Xavier Wang <weasley.wx@...>
- Date: Wed, 11 Jan 2012 05:06:25 +0800
2012/1/10 Dirk Laurie <dirk.laurie@gmail.com>:
> 2012/1/10 Xavier Wang <weasley.wx@gmail.com>:
>
>>
>> I really think that a programming language should have two kinds of
>> string: One for Symbol and One for really string.
>>
>> Symbol is used as hash-table key, flags, etc.
> ...
>>
>> String is a real byte array, It can be changed, It doesn't need using
>> as hash-table key (but it could), It may be very long and has doesn't
>> need to pre-calculate a hash, compare two really string is expensive,
>> long String can use Copy-On-Write but it's not matter.
>>
>
> Is there going to be syntax for constructing "really string" literals?
> If not, it can be implemented as a library operating on userdata,
> rather like the `file:` functions.
>
> Which metamethods should it have?
>
> len, concat: like string
> eq, le, lt: actual comparisons
> add: bitwise `or`
> sub: bitwise `nor`
> mul: bitwise `and`
> div: bitwise `nand`
> unm: bitwise `not`
> index: access to a byte
> newindex: changing a byte
If two string is not same length, then how to define these binary operations?
>
> What about `xor`? `pow` and `mod` are so far unused, but have the
> wrong precedence. This may require a language extension, e.g. binary
> `not` using the tilde.
>
> Hard to believe nobody has done something of the kind yet.
>