Cunoaște Intuit, curs, funcția universală

Acesta va lucra pentru motive care sunt explicate în capitolul 6.

formală între distincție funcțiile și predicatele în Lisp nu există. Un predicat poate fi definit ca o funcție cu valori, fie T sau NIL. Acest lucru este valabil pentru toate predicatele sistem. Puteți utiliza o formă care nu este un predicat în cazul în care este necesar predicat. poziția predicat argument condițională sau logice. Semantically orice expresie S-. altele decât NIL. Acesta va fi luată în considerare în acest caz să fie adevărat. Prima consecință a acestui - predicatului NULL și negației logice nu identice. Al doilea - faptul că (ESTIMARE T) sau (QUOTE X), în mod substanțial echivalent cu T ca predicate constante.

Predicatul EQ se comportă după cum urmează:

  1. În cazul în care argumentele sale sunt diferite, valoarea EQ este NIL.
  2. Dacă ambele argumentele sale sunt același atom, valoarea - T.
  3. În cazul în care valorile sunt atomi la fel, dar nu, valoarea T sau NIL pe baza faptului dacă argumente identice de reprezentare în memorie.
  4. Valoarea EQ este întotdeauna T sau NIL. Niciodată nu este nedefinit, chiar dacă argumentele greșite.

Universal - un spiriduș eliberat dintr-o sticlă, deoarece potențialul unei astfel de funcții este limitată numai de capacitățile noastre imaginație. Atâta timp cât luăm în considerare doar cele mai simple, consecințele cele mai evidente ale posibilității se aplică în mod explicit și rafinarea mecanismelor de reprezentare simbolică și definirea funcțiilor, cum ar fi utilizarea acumularea de parametrii denumirilor de legare în conformitate cu schema de conectare sensul în lista de asociere ca numele variabilelor cu valori și numele de funcții cu definițiile, și funcțiile de sprijin aplicație pentru a realiza o anumită transparență. Aceste capacități au un loc în orice limbaj de nivel înalt. Dar, în același timp suficient de riguroase efectuate de construcție a unui sistem matematic complet formal. numita „LISP elementară“. Componentele acestui sistem formal, sunt după cum urmează:

  1. O multitudine de simboluri, numite S-expresii.
  2. Notația funcțională sistem pentru conceptele de bază necesare pentru procesarea programării S-exprimare.
  3. O reprezentare formală a notației funcționale în formă de S-expresii.
  4. Universal (scris sub formă de S-expresii), interpretativ funcție arbitrară de manipulare scrisă ca S-exprimare, la argumentele sale.
  5. Un sistem de funcții de bază, oferind suport tehnic pentru prelucrarea S-expresii și funcții speciale, calculează de control.

consecințe atât de evident mai interesante și nu apar atunci când extinderea sistemului formal, așa cum se va demonstra în următoarele conferințe.