CoCreate är Hewlett Packard 2D CAD - Computer Aided Design - programpaketet . Ingenjörer använder den för att utforma nya delar . Makrot språk som kommer med CoCreate kallas ME10 . Vid första anblicken ser ME10 mycket annorlunda från AI språket LISP . Den uppsjö av parenteser som är så karakteristisk för LISP är nästan frånvaro i ME10 . Vid närmare granskning , dock visar det sig att de viktigaste aktörerna i ME10 är " definiera ", " loop " och " låt " som är också principen operatörerna i LISP . Utom för ytliga framträdanden , LISP och ME10 är faktiskt ganska lika . Instruktioner
1
Konvertera funktionsdefinitioner i LISP att fungera definitioner i ME10 . Funktion definitionerna i LISP ser ut så här : " . End_define " ( define namn ( parametrar ) ABC ) , och den motsvarande koden i ME10 börjar med en linje som har " definiera namn " och avslutas med en linje som har sökordet Varje parameter är noterade på en separat rad med sökordet " parametern " och namnet på parametern . Instruktionerna A , B och C kommer att vara i samma ordning i ME10 som de var i LISP
2 loop
Förändring instruktioner i LISP som ser ut så här : . ( Loop ABC ) . I ME10 , slingor börjar med en linje som har sökordet " loop " och slutar med sökordet " end_loop " på en egen rad . Det finns många sätt att köra ut från en slinga i LISP , men bara ett sätt på ME10 . Det är ganska lätt att omvandla de flyr från en LISP slinga in i utgången från en ME10 slinga , som alltid ser ut så här : " . Exit_if villkoret " Addera 3
Rewrite " låt " uttalanden i LISP . De fungerar precis som "låt" uttalanden i ME10 utom syntaxen är lite annorlunda . I LISP "Let " uttalanden ser ut så här : ( låt a1 a2 b1 b2 c1 c2 ) . Detta orsakar a2 vara bunden till a1 , b2 att vara bunden till B1 och C2 att vara bunden till C1 . I ME10 , skulle det finnas tre olika linjer: " låt a1 a2 " , " Låt b1 b2 " och " Låt C1 C2 . "
4
Kom ihåg att i LISP en variabel inte behöver deklareras innan den används. Detta är inte sant i de flesta språk - däribland ME10 . Om en variabel inte deklareras i en " låt " eller " parameter " uttalande i LISP , måste den deklareras i ME10 . Det enklaste sättet att göra detta är att förklara X med en rad som säger "lokala X " innan X visas i något annat uttalande . Addera