Il legame ad alogeno: esempi di self-assembling e riconoscimento molecolare in sistemi complessi