En Common Lisp, si tu veux comparer l'égalité entre deux structures : > (defstruct toto x y z)
> (defparameter a (make-toto :x 10 :y 20 :z 10))
> (defparameter b (make-toto :x 10 :y 20 :z 10))
> (equalp a b) => T
Si on ne veux comparer que quelques champs, on peut écrire une petite macro qui va générer l'arbre if/else à notre place à la compilation. Et on pourra écrire un truc du genre : > (fields-equal a b :x :z) => T
Bon je sors, j'ai un petit tutoriel à lire http://lisperati.com/haskell/ :-)
[^] # Re: typage mou
Posté par hocwp (site web personnel) . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 1.
> (defstruct toto x y z)
> (defparameter a (make-toto :x 10 :y 20 :z 10))
> (defparameter b (make-toto :x 10 :y 20 :z 10))
> (equalp a b) => T
Si on ne veux comparer que quelques champs, on peut écrire une petite macro qui va générer l'arbre if/else à notre place à la compilation. Et on pourra écrire un truc du genre :
> (fields-equal a b :x :z) => TBon je sors, j'ai un petit tutoriel à lire http://lisperati.com/haskell/ :-)