3 ms·
Contiguous memory structs: http://www.lispworks.com/documentation/HyperSpec/Body/m_defstr.htm http://www.lispworks.com/documentation/HyperSpec/Body/m_defs... C
by oconnore 10y ago
Contiguous memory structs: http://www.lispworks.com/documentation/HyperSpec/Body/m_defstr.htm http://www.lispworks.com/documentation/HyperSpec/Body/m_defs...
Contiguous memory vectors (multi-dimensional arrays, too!): http://www.lispworks.com/documentation/HyperSpec/Body/t_smp_ve.htm http://www.lispworks.com/documentation/HyperSpec/Body/t_smp_...
Native hash tables: http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_has.htm http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_h...
- catnaroek 10y ago> Contiguous memory I wasn't talking about the memory representation of anything. A first-class value is something that a variable may denote. In ML, if the variable `xs` denotes the list `[1,2,3]` within a given environment, it will always do so. In Lisp, I can mutate the cons cells out of which `(list 1 2 3)` is built, so what is actually bound to the variable is the object identity of the first `cons` cell. Not a list value!
- oconnore 10y agoOh. You have a strange way of phrasing your critiques, but you're right, it's all in IO/IORef.
- catnaroek 10y agoI wanted to formulate my observation in very general terms, rather than mention specific facilities of other programming languages. I also wanted to avoid suggesting a connection with static types or effect segregation. The main benefit of values over objects is that using values leads to designs that have less moving parts, and thus are easier to understand, modify, extend and test.