Hmmm, smells like Lisp (not necessarily bad)⦠On 01 May 2013, at 16:27, Camille Teruel <camille.teruel@gmail.com> wrote:
On 1 mai 2013, at 14:03, stephane ducasse wrote:
I was more thinking in something useful :)
Not really useful but fun: simulate classes, subclasses and objects with blocks:
makeCounter := [ | this value | value := 0. this := Dictionary new at: #set put: [ :newValue | value := newValue ]; at: #get put: [ value ]; at: #incr put: [ value := value + 1 ]; at: #reset put: [ (this at: #set) value: 0 ]; yourself ].
makeDecrCounter := [ | this | this := makeCounter value at: #decr put: [ (this at: #set) value: (this at: #get) value - 1 ]; yourself ].
aCounter := makeCounter value. (aCounter at: #incr) value. (aCounter at: #set) value: 10. (aCounter at: #reset) value.
aDecrCounter := makeDecrCounter value. (aDecrCounter at: #decr) value
On Apr 30, 2013, at 11:07 PM, Marcus Denker <marcus.denker@inria.fr> wrote:
On Apr 30, 2013, at 10:56 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
anObject become: String new.
for become: related teaching, this is fun:
magic #thisIsMagiC isSymbol ifTrue: [#thisIsMagiC become: #(0)]. #thisIsMagiC at: 1 put: (#thisIsMagiC at: 1) +1. ^#thisIsMagiC first.