Skip to content

Commit 9b0f08e

Browse files
committed
chore(docs): subdivide built-in operators in sub sections
1 parent 90ca6e7 commit 9b0f08e

File tree

1 file changed

+38
-10
lines changed

1 file changed

+38
-10
lines changed

docs/docs/documentazione/analysis.md

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,19 @@ Le constanti sono ciò che danno il nome agli oggetti o alle relazioni. Possono
5050
Non ci sono vincoli sulla composizione della sequenza di caratteri se questa è racchiusa tra apici `''`.
5151
Gli atomi possono contenere anche i simboli `+`, `-` `*`,`/`, `\ `,`~`, `^`,`<`, `>`, `:`, `.`, `?`, `@`,
5252
`#`, `$`, `&`. La sequenza di caratteri può contenere il carattere `_` per aumentare la leggibilità.
53-
* La rappresentazione dei numeri è quella dei numeri reali ed ammette la notazione esponenziale (es. *-2.67e2*).
53+
* Le costanti numeriche hanno la rappresentazione dei numeri reali ed ammette la notazione esponenziale (es. *-2.67e2*).
5454

5555
### Variabili
5656

5757
Permettono di riferirsi ad un termine senza specificarlo direttamente. Un termine che non contiene variabili si dice
58-
*termine base* (o termine ground).
59-
La sintassi delle varibili è come quella degli atomi con la differenza che le variabili hanno come carattere iniziale una lettera
60-
maiuscola o il carattere `_`. Non si racchiudono le varibili tra apici. Il solo carattere `_` denota una variabile anonima.
58+
*termine base* (o *termine ground*).
59+
La sintassi delle varibili è la stessa degli atomi con la differenza che il carattere iniziale delle variabili è
60+
una lettera maiuscola oppure il carattere `_`. Non è possibile racchiudere le varibili tra apici.
61+
Il solo carattere `_` denota una variabile anonima.
6162

6263
#### Sostituzioni di variabili
63-
Una *sostituzione* è una mappa che dato un insieme di variabili, ne associa ciascuna
64-
ad un termine. In una sostituzione i termini non possono contenere nessuna delle variabili considerate nella
65-
sostituzione.
64+
Una *sostituzione* è una mappa che dato un insieme di variabili, associa a ciascuna di esse un termine.
65+
In una sostituzione i termini non possono contenere nessuna delle variabili considerate nella sostituzione.
6666
Le sostituzioni possono essere applicate a dei termini. L'applicazione di una sostituzione `S` ad un termine `t0`
6767
consiste nella sostitutzione di tutte le variabili `X` che appaiono in `t0` con i rispettivi termini `t`, per ciascuna
6868
delle coppie `X=t` nella sostituzione `S`. Il risultato di una sostituione prende il nome di *istanza*.
@@ -162,20 +162,30 @@ Alcuni predicati potrebbero richiedere particolari tipi di argomenti (es. per il
162162
che gli argomenti siano dei numeri). Cosa succede nel caso in cui questi requisiti non vengano rispettati dipende dalla
163163
specifica implementazione del motore che eseguira il programma.
164164

165+
* **':-'(X, Y)** infix
166+
* **','(X, Y)** infix
167+
165168
#### Predicati dinamici
166169

167170
#### Predicati
168171

169-
* **consult(X)** --> X is the path of the file
172+
##### Inserimento di nuove clausole
173+
174+
* **consult(X)**
175+
176+
##### Risoluzione
177+
170178
* **true**
171179
* **fail**
180+
172181
* **var(X)**
173182
* **nonvar(X)**
174183
* **atom(X)**
175184
* **number(X)**
176185
* **atomic(X)**
177-
* **':-'(X, Y)** infix
178-
* **','(X, Y)** infix
186+
187+
##### Classificatione dei termini
188+
179189
* **clause(X, Y)**
180190
* **asserta(X)**
181191
* **assertz(X)**
@@ -186,21 +196,36 @@ specifica implementazione del motore che eseguira il programma.
186196
* **'=..'(X, L)** infix
187197
* **atom_chars(A, L)**
188198
* **number_chars(A, L)**
199+
200+
##### Backtracking
201+
189202
* **!**
190203
* **repeat**
204+
205+
##### Costruzione di termini composti
206+
191207
* **';'(X, Y)** infix
192208
* **call(X)**
193209
* **'\\+'(X)** prefix
210+
211+
##### Uguaglianza
212+
194213
* **'='(X, Y)** infix
195214
* **'=='(X, Y)** infix
196215
* **op(X, Y, Z)** --> atoms fx, fy, xf, yf, xfx, yfx, yfy
197216
* **is(X, Y)** infix
217+
218+
##### Aritmetici
219+
198220
* **'+'(X, Y)** infix
199221
* **'-'(X, Y)** infix
200222
* **'*'(X, Y)** infix
201223
* **'/'(X, Y)** infix
202224
* **'//'(X, Y)** infix
203225
* **mod(X, Y)** infix
226+
227+
##### Confronto fra termini
228+
204229
* **'=:='(X, Y)** infix
205230
* **'=\\='(X, Y)** infix
206231
* **'<'(X, Y)** infix
@@ -211,6 +236,9 @@ specifica implementazione del motore che eseguira il programma.
211236
* **'@>'(X, Y)** infix
212237
* **'@>='(X, Y)** infix
213238
* **'@=<'(X, Y)** infix
239+
240+
##### Ispezione di un programma Prolog
241+
214242
* **trace**
215243
* **notrace**
216244
* **spy P** prefix

0 commit comments

Comments
 (0)