[Python-ideas] "Immutable Builder" Pattern and Operator
Wes Turner
wes.turner at gmail.com
Sun Jan 22 19:03:09 EST 2017
More information about the Python-ideas mailing list
Sun Jan 22 19:03:09 EST 2017
- Previous message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Next message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sunday, January 22, 2017, Wes Turner <wes.turner at 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+py at gmail.com > <javascript:_e(%7B%7D,'cvml','fakedme%2Bpy at 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 at python.org >> https://mail.python.org/mailman/listinfo/python-ideas >> Code of Conduct: http://python.org/psf/codeofconduct/ >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170122/6a509a49/attachment.html>
- Previous message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Next message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list