Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pp:22:laboratoare:prolog:intro [2022/05/08 09:39]
bot.pp created
pp:22:laboratoare:prolog:intro [2022/05/13 09:18] (current)
ionut.balasescu [Resurse]
Line 167: Line 167:
  
 </​code>​ </​code>​
-Se observă definirea atât printr-un fapt(linia 5), cât și printr-o regulă (linia 6) a predicatului //​iubeste(?​Cine,​ ?PeCine)//.+Se observă definirea atât printr-un fapt (linia 5), cât și printr-o regulă (linia 6) a predicatului //​iubeste(?​Cine,​ ?PeCine)//.
  
 ===== Operatori ===== ===== Operatori =====
Line 173: Line 173:
   * Aritmetici: ''​%%+%%''​ ''​%%-%%''​ ''​%%*%%''​ ''​%%/​%%''​   * Aritmetici: ''​%%+%%''​ ''​%%-%%''​ ''​%%*%%''​ ''​%%/​%%''​
   * Relaționali:​ ''​%%=\=%%''​ ''​%%<​%%''​ ''​%%>​%%''​ ''​%%=<​%%''​ ''​%%>​=%%''​ ''​%%=:​=%%''​ ''​%%is%%''​   * Relaționali:​ ''​%%=\=%%''​ ''​%%<​%%''​ ''​%%>​%%''​ ''​%%=<​%%''​ ''​%%>​=%%''​ ''​%%=:​=%%''​ ''​%%is%%''​
-  * Logici: ''​%%,​%%''​ (si) ''​%%;​%%''​ (sau) ''​%%\+%%''​ (not)+  * Logici: ''​%%,​%%''​ (și) ''​%%;​%%''​ (sau) ''​%%\+%%''​ (negație)
  
 La scrierea expresiei ''​%%1+2\*(X/​Y)%%'',​ valoarea acesteia nu este calculată, ci expresia este reținută ca atare. Se poate observa că operatorii ''​%%=:​=%%''​ și ''​%%is%%''​ forțează evaluarea unei expresii, pe când ''​%%=%%''​ verifica doar egalitatea structurală. La scrierea expresiei ''​%%1+2\*(X/​Y)%%'',​ valoarea acesteia nu este calculată, ci expresia este reținută ca atare. Se poate observa că operatorii ''​%%=:​=%%''​ și ''​%%is%%''​ forțează evaluarea unei expresii, pe când ''​%%=%%''​ verifica doar egalitatea structurală.
Line 199: Line 199:
 ==== Negație ==== ==== Negație ====
  
-Operatorul unar ''​%%\+%%''​ folosit pentru un operand reprezintă faptul că nu se poate demonstra că operandul este adevărat. Dacă operandul conține variabile, ''​%%\+%%''​ denotă că nu există nicio legare pentru variabile astfel încât operandul să fie adevărat.+Operatorul unar ''​%%\+%%''​ folosit pentru un operand reprezintă faptul că nu se poate demonstra că operandul este adevărat. Dacă operandul conține variabile, ''​%%\+%%''​ denotă că nu există nicio legare pentru variabile astfel încât operandul să fie adevărat. ​Operatorul ''​%%\+%%''​ trebuie în mod necesar să fie urmat de spațiu (sau paranteză deschisă)
  
 ===== Liste ===== ===== Liste =====
Line 215: Line 215:
   * predicat(+Arg1,​ -Arg2, ?Arg3, ..., +ArgN)   * predicat(+Arg1,​ -Arg2, ?Arg3, ..., +ArgN)
  
-Pentru a diferenția intrările (+) de ieșiri(-), se prefixează argumentele cu indicatori. Acele argumente care pot fi fie intrări, fie ieșiri se prefixează cu '?'​. Instanțierea parametrilor ține de specificarea acestora:+Pentru a diferenția intrările (+) de ieșiri (-), se prefixează argumentele cu indicatori. Acele argumente care pot fi fie intrări, fie ieșiri se prefixează cu '?'​. Instanțierea parametrilor ține de specificarea acestora:
  
-  * Arg1 va fi instanțiat atunci când se va încerca satisfacerea p/3 +  * Arg1 va fi deja instanțiat atunci când se va încerca satisfacerea p/3 
-  * Arg2 se va instanția odată cu satisfacerea ​p/3 +  * Arg2 va fi neinstanțiat atunci când se va încerca satisfacerea p/3 , și dacă predicatul este satisfăcut,​ Arg2 va fa fi instanțiat la finalul evaluării lui p/3; Arg2 poate fi și deja instanțiat la evaluarea lui p/3, și atunci evaluarea lui p/3 poate servi ca verificare a corectitudinii argumentului în raport cu semnificația prediatului 
-  * Arg3 va putea fi instanțiat sau nu atunci când se va satisface ​p/3+  * Arg3 va putea fi instanțiat sau nu atunci când se va încerca satisfacerea ​p/3
  
 ===== Resurse ===== ===== Resurse =====
Line 225: Line 225:
   * [[https://​github.com/​cs-pub-ro/​PP-laboratoare/​raw/​master/​prolog/​intro/​prolog-cheatsheet-1.pdf|Cheatsheet]]   * [[https://​github.com/​cs-pub-ro/​PP-laboratoare/​raw/​master/​prolog/​intro/​prolog-cheatsheet-1.pdf|Cheatsheet]]
   * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​prolog/​intro-schelet.zip|Schelet]]   * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​prolog/​intro-schelet.zip|Schelet]]
-  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​prolog/​intro-solutie.zip|Soluții]]+  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​prolog/​intro-solutii.zip|Soluții]]
  
 ===== Referințe ===== ===== Referințe =====
pp/22/laboratoare/prolog/intro.1651991961.txt.gz · Last modified: 2022/05/08 09:39 by bot.pp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0