Ooh Ooh My Turn Why Lisp? (2008)
smuglispweeny.blogspot.com
Ooh Ooh My Turn Why Lisp? (2008)
1–10 of 160 posts
Re: Ooh Ooh My Turn Why Lisp? (2008)
#2Re: Ooh Ooh My Turn Why Lisp? (2008)
#3Since when is this supposed to be a selling point? Not having compound values (not the same thing as compound objects!) is a pain.
Re: Ooh Ooh My Turn Why Lisp? (2008)
#4Re: Ooh Ooh My Turn Why Lisp? (2008)
#5> object identity for everything but numbers and characters Since when is this supposed to be a selling point? Not having compound values (not the same thing as compound objects!) is a pain.
> An implementation is permitted to make ``copies'' of characters and numbers at any time. The effect is that Common Lisp makes no guarantee that eq is true even when both its arguments are ``the same thing'' if that thing is a character or number.
http://www.lispworks.com/documentation/HyperSpec/Body/f_eq.h...
Re: Ooh Ooh My Turn Why Lisp? (2008)
#6> object identity for everything but numbers and characters Since when is this supposed to be a selling point? Not having compound values (not the same thing as compound objects!) is a pain.
You seem to be very confused. This is referring to #'eq (which is why #'eql exists). What lack of compound values are you lamenting? Lisp has built in classes, structs, arrays, lists, and maps. What is missing? > An implementation is permitted to make ``copies'' of characters and numbers at any time. The effect is that Common Lisp makes no guarantee that eq is true even when both its arguments are ``the same thing''…
Objects aren't compound values. Objects are compound, well, objects. And pointers to objects are primitive, indivisible values - not compound!
> lists
Racket and ML have lists. Lisp has mutable linked data structures, built out of `cons` cells, whose value at any given point in time may be a list. But the value itself isn't first-class, because you can only bind the identity of the cons cell to a variable.
Re: Ooh Ooh My Turn Why Lisp? (2008)
#7Earlier quoted context omitted.
You seem to be very confused. This is referring to #'eq (which is why #'eql exists). What lack of compound values are you lamenting? Lisp has built in classes, structs, arrays, lists, and maps. What is missing? > An implementation is permitted to make ``copies'' of characters and numbers at any time. The effect is that Common Lisp makes no guarantee that eq is true even when both its arguments are ``the same thing''…
> Lisp has built in classes Objects aren't compound values. Objects are compound, well, objects . And pointers to objects are primitive, indivisible values - not compound! > lists Racket and ML have lists. Lisp has mutable linked data structures, built out of `cons` cells, whose value at any given point in time may be a list. But the value itself isn't first-class, because you can only bind the identity of the cons c…
Contiguous memory vectors (multi-dimensional arrays, too!): http://www.lispworks.com/documentation/HyperSpec/Body/t_smp_...
Native hash tables: http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_h...
Re: Ooh Ooh My Turn Why Lisp? (2008)
#8Earlier quoted context omitted.
> Lisp has built in classes Objects aren't compound values. Objects are compound, well, objects . And pointers to objects are primitive, indivisible values - not compound! > lists Racket and ML have lists. Lisp has mutable linked data structures, built out of `cons` cells, whose value at any given point in time may be a list. But the value itself isn't first-class, because you can only bind the identity of the cons c…
Contiguous memory structs: 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_... Native hash tables: http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_h...
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!
Re: Ooh Ooh My Turn Why Lisp? (2008)
#9Re: Ooh Ooh My Turn Why Lisp? (2008)
#10Earlier quoted context omitted.
Contiguous memory structs: 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_... Native hash tables: http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_h...
> 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…