Forum: Italian Ruby user group continuations

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2006-05-09 21:36
(Received via mailing list)
Qualcuno di voi usa *davvero* le continuations?
è qualcosa che semplicemente non mi viene da usare..

mi piacerebbe vedere alcuni esempi concreti in cui semplificano la
soluzione
ad un problema..

--
Chiaroscuro
---
Liquid Development: http://liquiddevelopment.blogspot.com/
F94b8be3e2d2b4975223a50da930accb?d=identicon&s=25 Piergiuliano Bossi (Guest)
on 2006-05-10 04:12
(Received via mailing list)
Beh, c'è l'articolo di Gabriele di un anno e mezzo addietro, molto ben
fatto:
http://www.siforge.org/articles/2004/09/20-la_magi...

E poi prendi borges, dovresti trovare parecchi esempi, tutorial, ecc.
Ciao
Giuliano
652a08873b41cf44e456b54927c097a5?d=identicon&s=25 Giovanni Corriga (Guest)
on 2006-05-10 08:37
(Received via mailing list)
Il giorno mar, 09/05/2006 alle 22.11 -0400, Piergiuliano Bossi ha
scritto:
> Beh, c'è l'articolo di Gabriele di un anno e mezzo addietro, molto ben
> fatto: http://www.siforge.org/articles/2004/09/20-la_magi...
>
> E poi prendi borges, dovresti trovare parecchi esempi, tutorial, ecc.
> Ciao
> Giuliano

Le continuasetions potrebbero essere utilizzate per realizzare in
maniera semplice sistemi transazionali? O sto dicendo fesserie?

	Giovanni
C01072ccffb1f2d23f8b5f686e5b106a?d=identicon&s=25 gabriele renzi (Guest)
on 2006-05-10 08:44
(Received via mailing list)
--- Piergiuliano Bossi <pgbossi@gmail.com> ha scritto:


> Beh, c'è l'articolo di Gabriele di un anno e mezzo
> addietro, molto ben
> fatto:
>
http://www.siforge.org/articles/2004/09/20-la_magi...


grazie per il "ben fatto", non me lo merito :)

> E poi prendi borges, dovresti trovare parecchi
> esempi, tutorial, ecc.

più che borges direi "Wee" che è più
funzionale/funzionante.
Ma l'esempio attualmente più usato è la libreria
"breakpoint", credo.

Detto questo, concordo che anche io non uso
praticamente mai callcc ma mi fa piacere sapere che è
li per i casi di necessità, peccato sia leeeeento.

Esempio: tempo fa avevo scritto un programmino per
calcolare i decimali di pigreco[1], cosa che si può
fare iterativamente in modo emplice. Solo che ogni
dieci decimali c'era la necessità di stampare la loro
posizione dopo la virgola, e quindi di interrompere la
computazione per un secondo. Ottimo uso per callcc, ma
ho dovuto cambiare approccio perché era troppo lento
:(



[1] http://shootout.alioth.debian.org/gp4/ruby.php

--
icq:  #69488917
blog: http://riffraff.blogsome.com

Chiacchiera con i tuoi amici in tempo reale!
 http://it.yahoo.com/mail_it/foot/*http://it.messen...
30cb10b258fc90a05e97d63380133bf0?d=identicon&s=25 Massimiliano Mirra (Guest)
on 2006-05-10 09:30
(Received via mailing list)
On 5/9/06, chiaro scuro kiaroskuro-at-......... |ruby-it.org|
<...> wrote:
> Qualcuno di voi usa *davvero* le continuations?
> è qualcosa che semplicemente non mi viene da usare..
>
> mi piacerebbe vedere alcuni esempi concreti in cui semplificano la soluzione
> ad un problema..

Non è Ruby né sono continuazioni first-class, ma su
http://blog.hyperstruct.net/articles/2006/03/06/fi...
ho cercato di descrivere passo-passo come le ho simulate in Javascript
con sole lambda per far apparire sequenziale del codice che in realtà
è basato su eventi asincroni.  (In Ruby avrei fatto con la
manipolazione esplicita di Thread.)  Mi ricordo anche di un post di
Gabriele su un Python wiki dove si chiedevano esempi di Ruby e si
mostrava come farli in Python, e lui proponeva un'implementazione di
Amb.  Chissà se poi hanno risposto. :-)

Mi sembra che le applicazioni pratiche delle continuazioni vadano a
braccetto con questo pattern di prendere pezzi di un processo
disseminati nel tempo e farli apparire sequenziali.  Il modello
richiesta/risposta dell'HTTP può star stretto e infatti hanno cercato
di astrarre con i citati Wee e Borges, Seaside (evoluzione di Borges
in Smalltalk), UCW (Common Lisp), SISCWeb (Scheme su JVM)...
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2006-05-10 09:30
(Received via mailing list)
Qualcuno riesce a farmi vedere come può pensare diversamente a un problema
sapendo che esistono le continuations? è questo salto di percezione che
ancora mi manca.

Pensavo a qualche problema di domain semplice semplice.. dal
solito Person/Employee a Book/Library e Breakfast Recipes piuttosto che
siti
web e funzioni matematiche.

PS: vero molto ben fatto il tutorial di Gabriele.  Non riesco a credere
che
mi abbia fatto capire le cc usando l'assembly!

On 5/10/06, gabriele renzi <surrender_it@yahoo.it> wrote:
>
> Detto questo, concordo che anche io non uso
>
> Ml mailing list
> Ml@lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
>



--
Chiaroscuro
---
Liquid Development: http://liquiddevelopment.blogspot.com/
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2006-05-10 09:39
(Received via mailing list)
Questo è un punto di vista interessante. In pratica mi stai dicendo che le
puoi utilizzare per aumentare la cohesion di una serie di eventi
distanti
nel tempo ma logicamente legati ?

On 5/10/06, Massimiliano Mirra
Mi sembra che le applicazioni pratiche delle continuazioni vadano a
braccetto con questo pattern di prendere pezzi di un processo
disseminati nel tempo e farli apparire sequenziali.  Il modello

--
Chiaroscuro
---
Liquid Development: http://liquiddevelopment.blogspot.com/
30cb10b258fc90a05e97d63380133bf0?d=identicon&s=25 Massimiliano Mirra (Guest)
on 2006-05-10 16:13
(Received via mailing list)
> Questo è un punto di vista interessante. In pratica mi stai dicendo che le
> puoi utilizzare per aumentare la cohesion di una serie di eventi distanti
> nel tempo ma logicamente legati ?

Sì.  Un altro punto di vista è che la sequenza logica e quella
temporale sono molto legate nella maggior parte delle applicazioni ed
entrambe vengono direttamente riflessi nel codice, ma in alcune non è
così, come quelle in cui hai tempi lunghi tra una domanda e una
risposta, e conviene fare altro piuttosto che aspettare mentre una
risposta arriva (il caso tipico di applicazioni stateful via rete),
foss'anche solo serializzare il proprio stato e andare a dormire
lasciando tempo processore agli altri.

In quei casi o decidi che la sequenza temporale regna, e organizzi
quella logica in pezzi che stiano ciascuno in un breve frammento
sequenziale temporalmente (come un ciclo request/response in HTTP),
oppure che la sequenza logica regna, e organizzi quella temporale in
modo che nasconda i "vuoti" tra un'operazione e la successiva.

Scusa se sono un po' nebuloso. :-/
F94b8be3e2d2b4975223a50da930accb?d=identicon&s=25 Piergiuliano Bossi (Guest)
on 2006-05-10 20:23
(Received via mailing list)
On 5/10/06, Massimiliano Mirra <i81rnqg02@sneakemail.com> wrote:
>
> di astrarre con i citati Wee e Borges, Seaside (evoluzione di Borges
> in Smalltalk), UCW (Common Lisp), SISCWeb (Scheme su JVM)...
>

ANATEMA! Borges ha tratto ispirazione da Seaside e non viceversa.
Seaside 2
per la precisione.
Bisogna dare a Cesare (smalltalk/Borges) cio' che e' di Cesare.
E se vogliamo dirla tutta le continuations sono state introdotte in
Scheme
negli anni '70. :-)

Ciao
Giuliano
30cb10b258fc90a05e97d63380133bf0?d=identicon&s=25 Massimiliano Mirra (Guest)
on 2006-05-10 20:36
(Received via mailing list)
> > di astrarre con i citati Wee e Borges, Seaside (evoluzione di Borges
> > in Smalltalk), UCW (Common Lisp), SISCWeb (Scheme su JVM)...
> ANATEMA!

Esagerato. :-)

> Borges ha tratto ispirazione da Seaside e non viceversa. Seaside 2
> per la precisione.
> Bisogna dare a Cesare (smalltalk/Borges) cio' che e' di Cesare.

Sì, mi sono semplicemente confuso con Iowa, che Avi sviluppava in Ruby
prima che passasse a Squeak.

> E se vogliamo dirla tutta le continuations sono state introdotte in Scheme
> negli anni '70. :-)

Non penso che i meriti di Mr Sussman e Mr Steele siano stati messi in
discussione nel thread. :-)
F94b8be3e2d2b4975223a50da930accb?d=identicon&s=25 Piergiuliano Bossi (Guest)
on 2006-05-10 22:08
(Received via mailing list)
On 5/10/06, Massimiliano Mirra <i81rnqg02@sneakemail.com> wrote:
>
> Sì, mi sono semplicemente confuso con Iowa, che Avi sviluppava in Ruby
> prima che passasse a Squeak.
>
> > E se vogliamo dirla tutta le continuations sono state introdotte in
> Scheme
> > negli anni '70. :-)
>
> Non penso che i meriti di Mr Sussman e Mr Steele siano stati messi in
> discussione nel thread. :-)


No, neanch'io. E' solo che ogni tanto vengo posseduto dalla mia nemesi
pedante... ;-)

Ciao
Giuliano
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2006-05-11 00:05
(Received via mailing list)
Io nel frattempo mi propongo di inventarmi qualche semplice esempio per
rendere chiaro quando usare le continuations.

qualcosa di veramente immediato.

un pò come hanno fatto qui per i patterns:
http://www2.ing.puc.cl/%7Ejnavon/IIC2142/patexamples.htm

guardate il link, è veramente forte.

On 5/10/06, Piergiuliano Bossi <pgbossi@gmail.com> wrote:

--
Chiaroscuro
---
Liquid Development: http://liquiddevelopment.blogspot.com/
This topic is locked and can not be replied to.