CoCreates er Hewlett Packard 2D CAD - Computer Aided Design - programvarepakken. Ingeniører bruker det til å designe nye deler . Den makrospråket som kommer med CoCreates kalles ME10 . Ved første øyekast ser ME10 svært forskjellig fra AI språk LISP . Overfloden av parenteser som er så karakteristisk for LISP er nesten fravær i ME10 . Ved nærmere undersøkelse , men viser det seg at de viktigste aktørene i ME10 er " definere ", " loop" og " la ", som er også prinsippet operatører i LISP . Med unntak av overfladiske skinn , LISP og ME10 er faktisk ganske lik . Instruksjoner
en
Konverter funksjonsdefinisjonene i LISP å fungere definisjoner i ME10 . Funksjonsdefinisjonene i LISP se slik ut: " . End_define " ( define navn ( parametre) ABC) , og den tilsvarende koden i ME10 vil starte med en linje som har " definere navnet " og slutter med en linje som har søkeordet Hver parameter er oppført på en egen linje med søkeordet "parameter " og navnet på parameteren. Instruksjonene A, B og C vil være i samme rekkefølge i ME10 som de var i LISP
2
Endre sløyfe instruksjonene i LISP som ser slik ut : . ( Sløyfe ABC) . I ME10 , sløyfer starte med en linje som har søkeordet "loop " og slutter med søkeordet " end_loop " på en linje for seg selv . Det er mange måter å avslutte en løkke i LISP , men bare en måte ME10 . Det er ganske enkelt å konvertere rømming fra et LISP løkken inn i exit fra en ME10 loop, som alltid ser slik ut: " . Exit_if tilstand "
3
Rewrite " la " uttalelser i LISP . De fungerer akkurat som de " la " uttalelser i ME10 unntatt syntaksen er litt annerledes . I LISP de " la " uttalelser se slik ut: ( la a1 a2 b1 b2 c1 c2 ) . Dette fører a2 å være bundet til a1 , b2 å være bundet til b1 og c2 å være bundet til C1 . I ME10 , ville det være tre forskjellige linjer : "La a1 a2 ", " la b1 b2 " og " la c1 c2 . "
4
Husk at i LISP en variabel ikke må bli erklært før den brukes. Dette er ikke sant i de fleste språk - inkludert ME10 . Hvis en variabel ikke er deklarert i en " let " eller "parameter " statement i LISP , vil det må bli erklært i ME10 . Den enkleste måten å gjøre dette på er å erklære X med en linje som sier "lokale X " før X vises i en annen uttalelse.