se vuoi farli con delle stringhe puoi scriverti tu le funzioni e se le stringhe sono sempre di uguale lunghezza è ancora più facile.
Basta che scrivi 2 funzioni (not e and oppure not e or) e tutte le altre le puoi ricondurre ad operazioni con quelle che hai scritto

esempio: se scrivi not e and
a or b = not (not(a) and not(b))
a xor b = (a and not(b)) or (not(a) and b)