On Sunday, January 22, 2017, Wes Turner <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/ > > (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 > > 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 >> Code of Conduct: 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/