On Mon, Jul 17, 2017 at 2:19 AM, Michał Wadas <michalwa...@gmail.com> wrote:
> However there exists perfectly good solutions inside of JS with > Object.seal & Object.freeze. > > Actually these solutions are very bad for immutable data structures, > because creating deep copy of object on every modification cause very > If you're mutating an immutable object you're kinda breaking the rules and it shouldn't have been immutable in the first place. > significant overhead. This overhead can be significant even in optimized > Haskell implementations (link > <https://wiki.haskell.org/GHC/Memory_Management>) and for imperative > languages it's even worser. > > Immutable.js use many of tricks to avoid deep copying. > > On Mon, Jul 17, 2017 at 10:51 AM, Keith Cirkel < > esdisc...@keithcirkel.co.uk> wrote: > >> As functional programming because more mainstream - developers are >> leaning more and more on immutability - with tools like immutable.js. >> However there exists perfectly good solutions inside of JS with Object.seal >> & Object.freeze. >> >> I propose making a short syntax to allow for creating of sealed/frozen >> objects that looks like this: >> >> ```js >> {| foo: 1 |} // same as Object.seal({ foo: 1 }) >> {# foo: 1 #} // same as Object.freeze({ foo: 1 }) >> >> [| 1, 2, 3 |] // same as Object.seal([ 1, 2, 3 ]) >> [# 1, 2, 3 #] // same as Object.freeze([ 1, 2, 3 ]) >> >> // Deep frozen objects becomes a case of using frozen notation all the >> way down: >> {# foo: {# bar: 1 #} #} // same as Object.freeze({ foo: Object.freeze({ >> bar: 1 }) }) >> [# [# 1, 2 #], [# 3, 4 #] #] // same as Object.freeze([Object.freeze([1,2]), >> Object.freeze([3, 4]]) >> ``` >> >> This short syntax allows for a much more expressive way of >> writing/reading sealed & frozen objects. I look forward to a discussion >> about this. >> >> _______________________________________________ >> es-discuss mailing list >> es-discuss@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss >> >> > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss