4 ms·
Please reread the paper. It contains many things about the language semantics, e.g. As for sharing, the semantics cleary demonstrates that R prevents sharing b
by Locke1689 14y ago
Please reread the paper. It contains many things about the language semantics, e.g.
As for sharing, the semantics
cleary demonstrates that R prevents sharing by performing copies at assignments. The
R implementation uses copy-on-write to reduce the number of copies. With superassignment, environments can be used as shared mutable data structures. The way
assignment into vectors preserves the pass-by-value semantics is rather unusual and,
from personal experience, it is unclear if programmers understand the feature
And no, I did my master's thesis in Racket. I'm fine with unityped languages, I just describe them properly.
- hadley 14y agoThat's a consequence of having first class environments - but given that it's rarely used, shouldn't a sufficiently intelligent compiler be able to optimise it away in the common case? I'm sure I read a paper along those lines, but I can't find it again. On a related note, have you read the riposte paper? http://www.justintalbot.com/wp-content/uploads/2012/10/pact080talbot.pdf http://www.justintalbot.com/wp-content/uploads/2012/10/pact0...
- Locke1689 14y ago"sufficiently intelligent compiler" ;) But seriously, every under-used feature harbors a ton of bugs in the compiler and drains resources for implementation. Promises, for example, seem like a "feature" in R that only really serves to destroy performance and no one uses it.
- hadley 14y agoAgreed, but it's hard to know in advance what features will be useful, and once a language is established, it's hard to remove less-used features without breaking existing code.