1 / 10

Inteligenţă artificială

Inteligenţă artificială. Curs 4: Lisp Valori multiple, expresii logice, asociaţii, lambda expresii şi definiţii de funcţii, operaţii cu mulţimi. Valori multiple. Funcţiile floor , ceiling şi values-list produc valori multiple. Valorile multiple nu sunt liste de valori.

Download Presentation

Inteligenţă artificială

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Inteligenţă artificială Curs4: Lisp Valori multiple, expresii logice, asociaţii, lambda expresii şi definiţii de funcţii, operaţii cu mulţimi

  2. Valori multiple Funcţiile floor, ceiling şi values-listproduc valori multiple. Valorile multiple nu sunt liste de valori. Exploatarea valorilor multiple: multiple-value-list, multiple-value-call

  3. Funcţii logice şi condiţionale and or not if when unless cond

  4. Liste de asociaţie • Liste de perechi cheie-valoare cheie valoare c a alpha b gamma c gamma

  5. Liste de asociaţie • Funcţii de creare: acons, pairlis • Funcţii de acces: assoc, rassoc

  6. Definiţii de funcţii • Sintaxa: (defun <nume> (<lista-arg>) <corp>) • Tipuri de argumente: • obligatorii • opţionale (&optional) • rest (&rest) • cheie (&key) • variabile auxiliare (&aux)

  7. Lambda expresii (lambda (<var1>… <varn>) f1… fm) Se utilizează în locul unui nume de funcţie, în contexte în care se preferă declararea directă a corpului funcţiei unui apel al unei funcţii anterior definite. Apeluri: ((lambda (<var1>… <varn>) f1… fm) <arg1>… <argn>) (…:test #’(lambda…)…) notaţie de funcţională

  8. Exemple de utilizare a lambda expresiilor • Pentru calcularea o singură dată a subexpresiilor Exemplu: calculul ecuaţiei de ordinul 2

  9. Exemple de utilizare a lambda expresiilor • În apeluri ce necesită funcţionale: member, union, intersection Exemplu: Reuniunea/intersecţia unor mulţimi de nume, indiferent de limba în care sunt scrise.

  10. Recursivitate • Scrierea unei funcţii recursive • încep prin definirea condiţiei de terminare a recursiei • continui cu apelul recursiv • Cum utilizez lambda expresiilor în apeluri recursive? • împreună cu declaraţii labels • Funcţii coadă-recursive Exemple: lung, factorial, numărul atomilor dintr-o listă indiferent de nivelul de paranteze

More Related