Quali algoritmi per l'unificazione su termini di array (multidimensionale)?
-
29-09-2020 - |
Domanda
Sto cercando riferimenti all'attuazione dell'unificazione su termini di array multidimensionale.
Ci sono algoritmi di unificazione specializzati per quei casi?Non ero in grado di trovare la letteratura soddisfacente sull'argomento, e sto tentando di scrivere una libreria di programmazione logica per la lingua J.
Soluzione
A titolo di contesto, suppongo che l'obiettivo sia quello di fare un'unificazione nella logica classica del primo ordine in una lingua fissa $ \ mathscr {l} $ .(Formattazione e altre correzioni Benvenuti.)
brevemente, è possibile trattare gli array come termini e array multidimensionali come array di array.Presenterai anche un nuovo simbolo termine che non si verifica in $ \ mathscr {l} $ .
Quindi, ad esempio, se si dispone di un array multidimensionale come il seguente,
\ Begin {Pmatrix} 1 e 2 e 3 \\ X & Y & Z \ End {Pmatrix}
Lo convertirai per la prima volta in una serie di array,
$$ \ testo {((1 2 3) (x y z))} $$
e quindi convertirlo in termini.Supponendo che il termine simbolo a
non sia nella tua lingua, ora puoi rappresentare la tua matrice multidimensionale come segue:
a(a(1,2,3),a(x,y,z))
.