Nop no es de pharo.. Supongo...corregime angel..pero es gnu.. Lo que es haciendo es definir el comportamiento on the fly el método.
Eso lo podes hacer en js.. lo que se te va complicar es llevarte el contexto junto con el bloque. eso no tengo perra idea como se hace en javascript Saludos El mar 23, 2012 12:10 p.m., "GallegO" <[email protected]> escribió: > Parece un chunk format modificado eso. > Es de Pharo? > > Nunca lo había visto. > > Saludos > > El día 23 de marzo de 2012 11:50, Angel Java Lopez > <[email protected]> escribió: > > Agrego nuevo caso > > > > > http://www.gnu.org/software/smalltalk/manual/html_node/Defining-methods.html#Defining-methods > > > > Account class extend [ > > new [ > > | r | > > <category: 'instance creation'> > > r := super new. > > r init. > > ^r > > ] > > ] > > > > > > Guau! hay un unary message extend, y luego un bloque? > > > > Cosa Golda! :-) > > > > 2012/3/23 Angel Java Lopez <[email protected]> > >> > >> Hola gente! > >> > >> El anio pasado consegui traducir codigo Smalltalk a Javascript, y > >> ejecutarlo en NodeJs, asi como en el browser. En estos dias tengo otro > >> "approach" para hacer lo mismo, pero ya directamente escrito en > Javascript > >> (el anterior trabajo esta en C#). > >> > >> Queria traducir/portar algun web framework simple de Smalltalk a > >> Javascript, y ejecutarlo desde NodeJs. Llegue a ver a: > >> > >> > >> > http://www.iliadproject.org/pages/Documentation/Getting-started/The-counter-example > >> > >> Y ahi me encuentro con el tema de esta consulta/pregunta. Veo: > >> > >> Iliad.ILWidget subclass: MyWidget [ > >> > >> contents [ > >> ^[:e | > >> e div > >> class: 'example'; > >> h1: 'hello world!'] > >> ] > >> ] > >> > >> Nunca habia visto esto de poner un bloque asi. En el libro de > Smalltalk-80 > >> no parece que este. Por lo que entendi, define metodos, en este caso > >> contents. > >> > >> Lo que no entiendo, es como se implemento esta sintaxis en Smalltalk. Es > >> que asi escrito, el bloque parece un mensaje unario que se envia a > MyWidget. > >> Pero debe estar pasando otra cosa. > >> > >> Entiendo que se envia el mensaje con selector subclass: a ILWidget, y a > lo > >> que retorna, se le aplica de algun modo el bloque. Es asi? > >> > >> Es algo que para implementarlo hubo que cambiar el Compiler de > Smalltalk? > >> > >> Es algo solo para cuando se envia subclass: ? > >> > >> Es #subclass el selector del message? O el compilador lo pasa a algo > como > >> #subclass:withblock: ?? (yo apuesto a esto ultimo) > >> > >> Como se escribiria en Smalltalk-80 clasico? > >> > >> Esta "notacion" esta soportada en todos los Smalltalks? en la mayoria? > en > >> la mitad? > >> > >> Veo tambien esa notacion en: > >> http://etoileos.com/dev/docs/languages/smalltalk/ > >> > >> NSObject subclass: LS > >> [ > >> run > >> [ > >> | fm files out | > >> fm := NSFileManager defaultManager. > >> files := fm directoryContentsAtPath:'.'. > >> out := NSFileHandle fileHandleWithStandardOutput. > >> files foreach:[ :x | x printOn:out. '\n' printOn:out. ]. > >> ] > >> ] > >> > >> Cualquier aclaracion, bienvenida! > >> > >> Nos leemos! > >> > >> Angel "Java" Lopez > >> http://www.ajlopez.com > >> http://twitter.com/ajlopez > >> > > > > -- > > To post to this group, send email to [email protected] > > To unsubscribe from this group, send email to > > [email protected] > > > > http://www.clubSmalltalk.org > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] http://www.clubSmalltalk.org
