CoCreate er Hewlett Packard 2D CAD - Computer Aided Design - softwarepakke. Ingeniører bruge det til at designe nye dele. Makroen sprog , der kommer med CoCreate kaldes ME10 . Ved første øjekast ser ME10 meget forskellig fra den AI sproget LISP . Den overflod af parenteser , der er så karakteristisk for LISP er næsten fravær i ME10 . Ved nærmere undersøgelse viser det sig imidlertid , at de væsentligste aktører i ME10 er " definere " " loop " og " lad ", som også er de vigtigste aktører i LISP . Bortset overfladiske optrædener er LISP og ME10 faktisk ret ens. Instruktioner
1
Konverter funktionsdefinitioner i LISP til at fungere definitioner ME10 . Funktion definitioner i LISP se således ud: " . End_define " ( define navn ( parametre) ABC ) og tilsvarende kode i ME10 starter med en linje, der har " definere navnet" og slutter med en linje, der har nøgleordet Hver parameter er noteret på en separat linje med søgeordet " parameteren" og navnet på parameteren. Instruktionerne A , B og C vil være i den samme rækkefølge i ME10 som de var i LISP
2
Skift loop instruktioner i LISP , der ligner dette :. (Rundtur ABC) . I ME10 , start loops med en streg , der har søgeordet "loop ", og ende med søgeordet " end_loop " på en linie for sig selv . Der er mange måder at afslutte en løkke i LISP , men kun én måde ME10 . Det er forholdsvis nemt at konvertere undslipper fra en LISP løkke i exit fra en ME10 løkke , som altid ser sådan ud: " . Exit_if betingelse"
3
Rewrite "lade" udsagn i LISP . De arbejder nøjagtig som "lade" udsagn i ME10 undtagen syntaksen er lidt anderledes. I LISP de "lade" udsagn ser således ud: (Lad a1 a2 b1 b2 c1 c2) . Dette medfører a2 at være bundet til a1 , b2 at være bundet til B1 og C2 at være bundet til C1 . I ME10 , ville der være tre forskellige linjer : " lad a1 a2 " , "lad b1 b2 " og " lad C1 C2 ".
4
Husk, at i LISP en variabel behøver ikke at blive erklæret før det anvendes . Dette er ikke tilfældet i de fleste sprog - herunder ME10 . Hvis en variabel ikke er erklæret i en " let " eller " parameter " erklæring i LISP , vil det være nødvendigt at blive erklæret i ME10 . Den nemmeste måde at gøre dette på er at erklære X med en linje, der siger "lokale X " før X vises på anden opgørelse.