CATEGORII DOCUMENTE |
Exista doua mari categorii de tipuri de date in AutoLISP: atomi si liste. Atomii sint obiecte simple. Listele sint obiecte complexe. Acest capitol defineste atomii si listele.
in acest capitol se va studia:
Diferenta dintre atomi si liste
Componentele unei liste
Cum sa recunoastem un raport de erori AutoLISP
Natura obiectului AutoLISP nil
Un atom este cel mai simplu tip de date din Lisp. Un atom poate fi un numar intreg
un numar real
un sir de caractere
A String Of Pearls
o functie AutoLISP predefinita
un simbol
XYZ
sau oricare alt tip de obiecte existente in tabelul 3-1.
Tipuri de atomi |
Exemple |
Tip de data AutoLISP |
simbol |
pi,x,mid_pt |
SYM |
sir |
'Hello, world.' |
STR |
intreg |
INT |
|
numar real |
REAL |
|
descriptor de fisier |
<File: #a82> |
FILE |
nume entitate AutoCAD |
<Entity name: 6000001a> |
ENAME |
set de selectie AutoCAD |
<Selection set: 1> |
PICKSET |
subr (functie interna) |
<Subr: #1e32> |
SUBR |
subr externa (Functia ADS) |
<Ext. Subr: 1 #3a970498> |
EXSUBR |
Tabelul 2. Exemple de atomi din AutoLISP si tipul de date al acestora
Exista o regula simpla pentru a afla daca un obiect este un atom sau o lista. Daca obiectul nu se afla intre paranteze atunci este un atom; daca da, atunci este o lista.
Listele sint s- expresii complexe formate din atomi si/sau alte liste. Listele necesita sintaxe simple dar riguroase.
O lista trebuie sa se afle intre paranteze.
Pentru orice lista care poate fi evaluata, primul termen din cadrul listei respective trebuie sa fie o functie.
Obiectele din cadrul listei trebuie separate prin cel putin un spatiu.
Iata citeva exemple de liste. Observati ca fiecare obiect este separat printr-un spatiu de celelalte obiecte din cadrul listei.
(x y z )
Despre evaluarea listelor vom vorbi putin mai tirziu.
Atomii si listele pot fi combinate sub forma de liste. in urmatoarele patru exemple am introdus trei atomi intr-o lista. Fiecare atom este un element al listei.
Aceasta lista are trei elemente: numerele reale 1.0, 1.0 si 0.0
Aceasta lista are trei elemente: functia de adunare + (functie interna), nr. intreg 1 si nr. intreg 3.
Aceasta lista are trei elemente: functia de adunare +, nr. intreg 1 si lista (+ 2 3)
Figura 4. Lista de trei elemente: doi atomi si o lista
Aceasta lista are trei elemente: functia de adunare +, lista (+ 1(+ 2 3)) si lista (+ 4 5).
Figura 5. Lista de trei elemente: un atom si doua liste.
Ceea ce este incadrat intre paranteze reprezinta o lista.
O lista se compune dintr-o paranteza de deschidere urmata de zero sau de mai multe obiecte care pot fi atomi sau liste dupa care urmeaza o paranteza de inchidere.
Cind introduceti s-expresii in linia de comanda AutoCAD, interpretorul AutoLISP va va spune daca ati introdus o expresie neechilibrata. O expresie neechilibrata are mai multe paranteze deschise decit inchise.
Iata o expresie neechilibrata. ii lipseste o paranteza inchisa.
Command: (+ 1 (+ 2 3)
1>
AutoLISP-ul semnalizeaza o expresie neechilibrata printr-un mesaj special.
n>
unde n este numarul de paranteze inchise care lipsesc.
Sint doua modalitati de rezolvare in cazul conditiilor de eroare: completati numarul corect de paranteze inchise sau apasati Ctrl-C pentru a anula expresia si a ne reintoarce in linia de comanda.
Nota Este de asemenea posibil sa vedeti acest mesaj cind un sir este neechilibrat. Un sir neechilibrat are ghilimele duble la un capat si simple la celalalt.
Toate obiectele din AutoLISP sint atomi sau liste. Atomii si listele se exclud mutual. Un atom nu este niciodata lista si o lista nu este niciodata atom.
Exceptia o face obiectul nil.
Obiectul nil este 'lista goala'. Prin conventie nil este si atom si lista. nil poate fi exprimat in doua moduri: 0 sau nil;.
nil este echivalentul AutoLISP pentru fals. Multe functii in AutoLISP testeaza daca o conditie este adevarata sau falsa, de exemplu daca valoarea unui numar este mai mare decit 0. De cite ori un test de conditie este fals, AutoLISP-ul va returna obiectul nil ca fiind valoarea testului.
nil este singurul obiect din AutoLISP corespunzator lui 'fals'; de aceea orice alta valoare returnata de un test de conditie trebuie sa corespunda lui 'adevarat'.
Cele doua mari clase de obiecte din AutoLISP sint atomii si listele.
Exista citeva tipuri diferite de atomi.
Atomii sint obiecte care nu sint incadrate intre paranteze.
Listele sint intodeauna incadrate intre paranteze
Obiectele continute intr-o lista constituie elementele unei liste
Elementele unei liste pot fi atomi sau liste
Elementele unei liste sint separate intre ele de cel putin un spatiu
AutoLISP detecteaza expresiile neechilibrate
nil este si atom si lista
nil este lista goala
nil este returnat de testele de conditie pentru a indica 'fals'
exercitiul 1: atomi si liste
in acest exercitiu veti:
Recapitula ce ati inteles despre atomi si liste
Determina daca un obiect este atom sau lista
Folosi AutoLISP pentru a afla valoarea diferitelor obiecte
Determinati daca obiectul este atom sau lista.
Obiecte |
Atomi |
Liste |
'String' | ||
('String') | ||
Completati rezultatul evaluarii in casuta corespunzatoare.
Tabelul 3. Determinarea naturii obiectului
Gasiti valoarea acestui atom in linia de comanda AutoCAD
Tipariti '!' urmat de un atom
Scrieti raspunsul in coloana din dreapta:
Command: !4.5
Atomi |
Valori |
'text' | |
setq | |
xyz | |
nil |
Tabelul 4. Determinarea valorii atomului
Determinati numarul de elemente continut de fiecare lista.
Scrieti raspunsul in coloana din dreapta.
Lista |
Numar de elemente |
Tabelul 5. Determinarea numarului de elemente din lista
Aceasta pagina este lasata libera in mod intentionat
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1363
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved