On 22/01/17 10:03 PM, Wes Turner wrote:


On Sunday, January 22, 2017, Wes Turner <wes.tur...@gmail.com <mailto:wes.tur...@gmail.com>> wrote:

    Have you looked at pyrsistent for
    immutable/functional/persistent/copy-on-write data structures in
    Python?

    https://github.com/tobgu/pyrsistent/
    <https://github.com/tobgu/pyrsistent/>

    (freeze() / thaw())

    ... e.g. List and Dict NamedTuple values are not immutable
    (because append() and update() still work)


fn.py also has immutables:
https://github.com/kachayev/fn.py/blob/master/README.rst#persistent-data-structures

You seem to be thinking of "immutable object builder". Not "the builder itself is immutable and operations on it create new builders".


    On Sunday, January 22, 2017, Soni L. <fakedme...@gmail.com
    <javascript:_e(%7B%7D,'cvml','fakedme%2...@gmail.com');>> wrote:

        I've been thinking of an Immutable Builder pattern and an
        operator to go with it. Since the builder would be immutable,
        this wouldn't work:

        long_name = mkbuilder()
        long_name.seta(a)
        long_name.setb(b)
        y = long_name.build()

        Instead, you'd need something more like this:

        long_name = mkbuilder()
        long_name = long_name.seta(a)
        long_name = long_name.setb(b)
        y = long_name.build()

        Or we could add an operator to simplify it:

        long_name = mkbuilder()
        long_name .= seta(a)
        long_name .= setb(b)
        y = long_name.build()

        (Yes, I'm aware you can x = mkbuilder().seta(a).setb(b), then
        y = x.build(). But that doesn't work if you wanna "fork" the
        builder. Some builders, like a builder for network connections
        of some sort, would work best if they were immutable/forkable.)
        _______________________________________________
        Python-ideas mailing list
        Python-ideas@python.org
        https://mail.python.org/mailman/listinfo/python-ideas
        <https://mail.python.org/mailman/listinfo/python-ideas>
        Code of Conduct: http://python.org/psf/codeofconduct/
        <http://python.org/psf/codeofconduct/>


_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to