Howdy!
(cc to squeak-dev because I think lots want to read this)
If you want to know some cool history of Smalltalk, and perhaps this is a strong argument in actually *being* a Smalltalk and not trying to distance yourself from that rich and lovely heritage.... anyway, here goes:
On 04/28/2014 08:14 PM, Alain Busser wrote:
Also, Ruby is famous for these methods:
*select *reject *collect
do these names not remind you something ;-) ?
There is a funny story about these verbs. Martin McClure told me at ESUG in Brest to ask Dan Ingalls about it, hinting that they are "inspired" by a famous song.
And thus I did ask Dan in my interview with him I did a few years back over Skype (it is an interesting interview, for example - was there an inspiration from biology when Smalltalk was created?):
http://files.krampe.se/interview.mp3
...the song in question is by Arlo Guthrie:
http://en.wikipedia.org/wiki/Alice%27s_Restaurant_Massacree
...and here is a URL to the lyrics of it:
http://www.lyricsty.com/arlo-guthrie-alices-restaurant-lyrics.html
(search down to "injected"!) ...or just let me quote:
"They got a building down New York City, it's called Whitehall Street, Where you walk in, you get injected, inspected, detected, infected, Neglected and selected. I went down to get my physical examination one Day, and I walked in, I sat down, got good and drunk the night before, so I looked and felt my best when I went in that morning."
...now... where do we stuff in #neglect:? :)
regards, Göran
On 29-04-2014, at 9:30 AM, Göran Krampe goran@krampe.se wrote:
...now... where do we stuff in #neglect:? :)
Clearly, aCollection neglect: [:item| item size > myFoo] would return a WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim No single raindrop believes it is to blame for the flood
On 04/29/2014 06:41 PM, tim Rowledge wrote:
On 29-04-2014, at 9:30 AM, Göran Krampe goran@krampe.se wrote:
...now... where do we stuff in #neglect:? :)
Clearly, aCollection neglect: [:item| item size > myFoo] would return a WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.
I like it. Personally was thinking that neglect could work similar to reject but instead return a wrapper using the first collection as a "backend". So it uses the same collection but "neglects" those elements not matching :)
Dynamically add some nasty Trait?
regards, Göran
The influence of Smalltalk on Ruby is well known, and is in fact how I found you people:)
Particularly striking is Ruby's block/closure syntax. Looks almost the same, which sticks out like a sore thumb in a dot and curly language. In the most recent versions I think they've even added keyword messages.
Awesome to know where #collect: came from. I wondered about that; given that the guy running the LRG was fond of LISP, I would have expected it to be called #map:.
I think the Ruby collections have #map() as a synonym for #collect(), reflecting the language's dual heritage. I've always used collect though because it makes me think of baseball cards!
On Apr 29, 2014, at 9:48 AM, Göran Krampe goran@krampe.se wrote:
On 04/29/2014 06:41 PM, tim Rowledge wrote:
On 29-04-2014, at 9:30 AM, Göran Krampe goran@krampe.se wrote:
...now... where do we stuff in #neglect:? :)
Clearly, aCollection neglect: [:item| item size > myFoo] would return a WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.
I like it. Personally was thinking that neglect could work similar to reject but instead return a wrapper using the first collection as a "backend". So it uses the same collection but "neglects" those elements not matching :)
Dynamically add some nasty Trait?
regards, Göran
On Mon, May 12, 2014 at 1:05 PM, Casey Ransberger casey.obrien.r@gmail.comwrote:
The influence of Smalltalk on Ruby is well known, and is in fact how I found you people:)
Particularly striking is Ruby's block/closure syntax. Looks almost the same, which sticks out like a sore thumb in a dot and curly language. In the most recent versions I think they've even added keyword messages.
Awesome to know where #collect: came from. I wondered about that; given that the guy running the LRG was fond of LISP, I would have expected it to be called #map:.
Dan posted last week that the collect:, detect:, inject:, reject:, select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":
"They got a building down New York City, it's called Whitehall Street, where you walk in, you get injected, inspected, detected, infected, neglected and selected. I went down to get my physical examination one day, and I walked in, I sat down, got good and drunk the night before, so I looked and felt my best when I went in that morning. `Cause I wanted to look like the all-American kid from New York City, man I wanted, I wanted to feel like the all-, I wanted to be the all American kid from New York, and I walked in, sat down, I was hung down, brung down, hung up, and all kinds o' mean nasty ugly things. And I waked in and sat down and they gave me a piece of paper, said, "Kid, see the psychiatrist, room 604."
I think the Ruby collections have #map() as a synonym for #collect(), reflecting the language's dual heritage. I've always used collect though because it makes me think of baseball cards!
On Apr 29, 2014, at 9:48 AM, Göran Krampe goran@krampe.se wrote:
On 04/29/2014 06:41 PM, tim Rowledge wrote:
On 29-04-2014, at 9:30 AM, Göran Krampe goran@krampe.se wrote:
...now... where do we stuff in #neglect:? :)
Clearly, aCollection neglect: [:item| item size > myFoo] would return a
WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.
I like it. Personally was thinking that neglect could work similar to
reject but instead return a wrapper using the first collection as a "backend". So it uses the same collection but "neglects" those elements not matching :)
Dynamically add some nasty Trait?
regards, Göran
On 05/12/2014 10:27 PM, Eliot Miranda wrote:
Dan posted last week that the collect:, detect:, inject:, reject:, select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":
I think it was *I* who posted, or did I miss a post from Dan?
regards, Göran
On Mon, May 12, 2014 at 1:35 PM, Göran Krampe goran@krampe.se wrote:
On 05/12/2014 10:27 PM, Eliot Miranda wrote:
Dan posted last week that the collect:, detect:, inject:, reject:, select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":
I think it was *I* who posted, or did I miss a post from Dan?
oops. forgive me; increasingly email passes in a blur...
regards, Göran
Sure, but I swear I saw it before. Maybe not in this mailing list... http://smalltalkzen.wordpress.com/2011/02/02/arlo-guthrie-and-the-origins-of... http://www.nofluffjuststuff.com/blog/rick__denatale/2010/11/how_arlo_got_inj...
2014-05-12 22:48 GMT+02:00 Eliot Miranda eliot.miranda@gmail.com:
On Mon, May 12, 2014 at 1:35 PM, Göran Krampe goran@krampe.se wrote:
On 05/12/2014 10:27 PM, Eliot Miranda wrote:
Dan posted last week that the collect:, detect:, inject:, reject:, select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":
I think it was *I* who posted, or did I miss a post from Dan?
oops. forgive me; increasingly email passes in a blur...
regards, Göran
-- best, Eliot
On 05/12/2014 11:03 PM, Nicolas Cellier wrote:
Sure, but I swear I saw it before. Maybe not in this mailing list... http://smalltalkzen.wordpress.com/2011/02/02/arlo-guthrie-and-the-origins-of... http://www.nofluffjuststuff.com/blog/rick__denatale/2010/11/how_arlo_got_inj...
Yeah, both those articles refer to my interview with Dan - where I asked him. But it was Martin that gave me the idea to ask and clarify :)
There are other things in that interview - like for example - did biology (the cell etc) actually serve as inspiration at that time?
regards, Göran
Thanks Göran, that's great!
I'm really looking forward to seeing an implementation of Collection>>neglect:, I can't believe nobody thought of this before ;-)
Dave
Howdy!
(cc to squeak-dev because I think lots want to read this)
If you want to know some cool history of Smalltalk, and perhaps this is a strong argument in actually *being* a Smalltalk and not trying to distance yourself from that rich and lovely heritage.... anyway, here goes:
On 04/28/2014 08:14 PM, Alain Busser wrote:
Also, Ruby is famous for these methods:
*select *reject *collect
do these names not remind you something ;-) ?
There is a funny story about these verbs. Martin McClure told me at ESUG in Brest to ask Dan Ingalls about it, hinting that they are "inspired" by a famous song.
And thus I did ask Dan in my interview with him I did a few years back over Skype (it is an interesting interview, for example - was there an inspiration from biology when Smalltalk was created?):
http://files.krampe.se/interview.mp3
...the song in question is by Arlo Guthrie:
http://en.wikipedia.org/wiki/Alice%27s_Restaurant_Massacree
...and here is a URL to the lyrics of it:
http://www.lyricsty.com/arlo-guthrie-alices-restaurant-lyrics.html
(search down to "injected"!) ...or just let me quote:
"They got a building down New York City, it's called Whitehall Street, Where you walk in, you get injected, inspected, detected, infected, Neglected and selected. I went down to get my physical examination one Day, and I walked in, I sat down, got good and drunk the night before, so I looked and felt my best when I went in that morning."
...now... where do we stuff in #neglect:? :)
regards, Göran
squeak-dev@lists.squeakfoundation.org