Nuovo articolo su TRM: Il Distributive Conjunction Pattern

parlando di _why… ma hackety hack lo avete visto??!

On 5/16/07, david [email protected] wrote:

Elements) tramite alias_method rendendo quindi / un alias del metodo
def ^( enemy )
def %( enemy )
return
[email protected]
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


– Kia

therubymine.com | be a miner

Sto aspettando la versione mac… ma appena arriva i miei figli si
beccherano qualche lezioncina!

:slight_smile:

chiaro scuro wrote:

:slight_smile:

Riesce a fare a meno del punto perché in realtà quel / è un

end

bombs, but you only have three!!

sop o’ the moonshine of you. You whoreson cullionly barbermonger,


“Notre malheur n’atteint son plus haut point que lorsque a été envisagée,
suffisamment proche, la possibilité pratique du bonheur.” - Michel
Houellebecq

On 5/15/07, gabriele renzi [email protected] wrote:

people*.foo #il parser si aspetta l’argomento per *
gabriele, parlavi di junctions… sono la stessa cosa delle mie
conjunction?

Cazzo! Ora devo fare dei figli! :slight_smile: ficata!

jek

— chiaro scuro [email protected] wrote:

gabriele, parlavi di junctions… sono la stessa cosa
delle mie conjunction?

no, sono meglio :slight_smile:
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

On 5/16/07, Stefano G. [email protected] wrote:

Cazzo! Ora devo fare dei figli! :slight_smile: ficata!

avrai una scusa per scrivere in Logo e giocare con la tecnica Lego…

On May 16, 2007, at 5:22 PM, gabriele renzi wrote:

maggiore di due
Bool::True

Uhm… mi ricorda un po’ Icon, dove pero’ questo concetto e’ insito
nel linguaggio stesso:

write(“y=”, (x | 5) > y)

stampa “y=” solo se y e’ minore di x oppure minore di 5

l’esempio sopra sarebbe

((1|2|3) > 2) & write(‘maggiore di due’)

oppure

write(((1|2|3) > 2) & ‘maggiore di due’)

Credo che dopo Ruby, Icon venga subito dopo per quanto riguarda
“l’effetto ooooooh” :slight_smile:


Stefano C.
[email protected]

On 5/15/07, Daniele A. [email protected] wrote:

Il concetto è lo stesso che ti permette di fare [‘a’, ‘b’, ‘c’] +
[‘d’, ‘e’, ‘f’] e ottenere come risultato [‘a’, ‘b’, ‘c’, ‘d’, ‘e’,
‘f’], solo che _why ha usato / in maniera un po’ più fantasiosa (come
del resto gli si addice perfettamente :))

_why ha fatto una cosa simile anche nel suo “Dwemthy’s Array”…

little boomerang

def ^( enemy )
fight( enemy, 13 )
end

the hero’s sword is unlimited!!

def /( enemy )
fight( enemy, rand( 4 + ( ( enemy.life % 10 ) ** 2 ) ) )
end

lettuce will build your strength and extra ruffage

will fly in the face of your opponent!!

def %( enemy )
lettuce = rand( charisma )
puts “[Healthy lettuce gives you #{ lettuce } life points!!]”
@life += lettuce
fight( enemy, 0 )
end

bombs, but you only have three!!

def *( enemy )
if @bombs.zero?
puts “[UHN!! You’re out of bombs!!]”
return
end
@bombs -= 1
fight( enemy, 86 )
end

Molto grazioso lo “/” come spada, la * come