— chiaro scuro [email protected] wrote:
gabriele, parlavi di junctions… sono la stessa cosa
delle mie conjunction?
no, sono meglio
Più seriamente, per certi versi sono simili, ma prlavo
di junction perché il nome scelto da te era simile e
credevo le conoscessi.
In pratica una junction è un tipo di dato che esiste
in perl6 che rappresenta una “superposizione” ovvero
un’insieme di cose in un unico punto.
Come tale è possibile: usarla nelle condizioni:
(impossibile in ruby, non c’è to_bool)
pugs> my $j= any(1,2,3)
(1 | 2 | 3)
pugs> say “maggiore di due” if $j > 2
maggiore di due
Bool::True
invocare metodi sfruttando il multiplexing:
(come le tue conjunction)
pugs> $j+=1
(2 | 3 | 4)
usarla come argomento:
pugs> say 5+$j
any(VInt 7,VInt 8,VInt 9)
Bool::True
e gli stati possono collassare:
pugs> $j == 2
(Bool::False | Bool::True)
Ci sono anche altre cose carine, tipo che se hai un
test fatto
così:
(uguale a assert_equal)
is any(1,2,3), 3
ti genererà un test passato e due falliti, e non uno
solo passato.
L’ultima differenza è che oltre alle con-giunzione
any(a|b|c)
c’è:- la disgiunzione all (a&b&c)
- la xor-giunzione(?) one (a^b^c)
- l’anticongiunzione(?) none(!a & !b & !c) (mi pare)
Per quel che so la libreria di florian gross che le
implementa in ruby di base segue comunque il tuo
stesso modello.
–
Goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
___________________________________________________________
Yahoo! Mail is the world’s favourite email. Don’t settle for less, sign
up for
your free account today
http://uk.rd.yahoo.com/evt=44106/*http://uk.docs.yahoo.com/mail/winter07.html