Funktionen ska ta två argument: en godtycklig Turing-maskin, M, och en godtycklig tejp. Funktionen ska returnera en tejp, med samma innehåll som M skulle ge för input-tejpen. Programmera gärna M.
I din rapport ska finnas en kortfattad diskussion om erfarenheterna att implementera en icke-funktionell ("goto-") maskin i ett funktionellt språk.
För att hantera problemställningarna kring företaget är följande primitiver givna:
company-p[x] | är sann om x är ett företag eller ett dotterföretag |
division-p[x] | är sann om x är en avdelning |
project-p[x] | är sann om x är ett projekt |
person-p[x] | är sann om x är en person |
name-before-p[x;y] | är sann om namnet x kommer före namnet y med avseende på bokstavsordning |
parts-of[x] | om x är ett företag returneras en lista av alla dotterföretag och/eller avdelningar om x är en avdelning returneras en lista av personer och/eller projekt om x är ett projekt returneras en lista av personer |
last-name[person] | returnerar en persons efternamn |
date-of-birth[person] | returnerar en persons födelsedatum, såsom en lista bestående av år månad och dag, i den ordningen, ex. (1964 5 29) |
Insatiables VD tycker om tårta. Skriv en funktion åt henne som skapar en lista av listor, där dellistorna innehåller alla anställda med samma födelsedag ordnade i bokstavsordning efter sitt efternamn. Dellistorna ska dessutom vara ordnade efter födelsedag (se exemplet nedan). Insatiables VD kan sedan spika upp födelsedagsbarnen på anslagstavlan, en dellista för varje dag.
(Förhoppningsvis känner sig någon manad att bjuda dem på en tårta!)
Exempel Vi har följande personer (aningen osannolikt - medhålles!):
Namn | Födelsedag |
---|---|
Andersson | (1963 5 29) |
Höök | (1964 5 29) |
Janson | (1963 11 27) |
Gurka | (1945 5 29) |
Åhs | (1932 11 27) |
Berglund | (1956 4 15) |
Du ska använda och implementera de funktioner som finns angivna i uppgiften.
Handledning ges av Kjell Post, på anslagna tider. Uppgiften lämnas till Kjell Post.
Anders Berglund Office: Room 1254 Department of Computer Systems E-mail: Anders.Berglund@docs.uu.se Box 325 Phone (work): +46 18 471 31 67 S-751 05 Uppsala Mobile phone: +46 70 425 02 11 Sweden Fax (work): +46 18 55 02 25 Senast ändrad: 08/30/97 19:08:33