================================================================= Logtalk - Object oriented extension to Prolog Release 2.27.1 Copyright (c) 1998-2006 Paulo Moura. All Rights Reserved. ================================================================= % start by loading the necessary library support example files (if not % already loaded): | ?- logtalk_load(library(types_loader)). ... % now you are ready for loading the example: | ?- logtalk_load(lpa_timetables(loader)). ... % the setup phase initializes the timetable: | ?- timetable::setup. yes | ?- timetable::make(2). + first_year - p1 - nicky - french + first_year - p2 - nicky - biology + first_year - p3 - brian - maths + first_year - p4 - brian - music + first_year - p5 - clive - prolog + second_year - p1 - brian - maths + second_year - p2 - brian - music + second_year - p3 - nicky - french + second_year - p4 - nicky - biology + second_year - p5 - diane - accountancy + third_year - p1 - dave - maths + third_year - p2 - clive - french + third_year - p3 - clive - prolog + third_year - p4 - diane - accountancy + third_year - p5 - nicky - biology + fourth_year - p1 - clive - french + fourth_year - p2 - dave - maths + fourth_year - p3 - diane - accountancy + fourth_year - p4 - clive - prolog + fourth_year - p5 - brian - music yes % the partially completed timetable is ... | ?- timetable::print. FORM TIMETABLE... FORM: first_year p1: nicky teaches french p2: nicky teaches biology p3: brian teaches maths p4: brian teaches music p5: clive teaches prolog FORM: second_year p1: brian teaches maths p2: brian teaches music p3: nicky teaches french p4: nicky teaches biology p5: diane teaches accountancy FORM: third_year p1: dave teaches maths p2: clive teaches french p3: clive teaches prolog p4: diane teaches accountancy p5: nicky teaches biology FORM: fourth_year p1: clive teaches french p2: dave teaches maths p3: diane teaches accountancy p4: clive teaches prolog p5: brian teaches music PERIOD TIMETABLE ... PERIOD: p1 first_year: nicky teaches french second_year: brian teaches maths third_year: dave teaches maths fourth_year: clive teaches french PERIOD: p2 first_year: nicky teaches biology second_year: brian teaches music third_year: clive teaches french fourth_year: dave teaches maths PERIOD: p3 first_year: brian teaches maths second_year: nicky teaches french third_year: clive teaches prolog fourth_year: diane teaches accountancy PERIOD: p4 first_year: brian teaches music second_year: nicky teaches biology third_year: diane teaches accountancy fourth_year: clive teaches prolog PERIOD: p5 first_year: clive teaches prolog second_year: diane teaches accountancy third_year: nicky teaches biology fourth_year: brian teaches music TEACHER TIMETABLE ... TEACHER: nicky p1: teach french to first_year p2: teach biology to first_year p3: teach french to second_year p4: teach biology to second_year p5: teach biology to third_year TEACHER: brian p1: teach maths to second_year p2: teach music to second_year p3: teach maths to first_year p4: teach music to first_year p5: teach music to fourth_year TEACHER: dave p1: teach maths to third_year p2: teach maths to fourth_year p3: p4: p5: TEACHER: clive p1: teach french to fourth_year p2: teach french to third_year p3: teach prolog to third_year p4: teach prolog to fourth_year p5: teach prolog to first_year TEACHER: diane p1: p2: p3: teach accountancy to fourth_year p4: teach accountancy to third_year p5: teach accountancy to second_year TEACHER: phil p1: p2: p3: p4: p5: SUBJECT TIMETABLE ... SUBJECT: maths p1: second_year taught by brian p1: third_year taught by dave p2: fourth_year taught by dave p3: first_year taught by brian SUBJECT: music p2: second_year taught by brian p4: first_year taught by brian p5: fourth_year taught by brian SUBJECT: french p1: first_year taught by nicky p1: fourth_year taught by clive p2: third_year taught by clive p3: second_year taught by nicky SUBJECT: prolog p3: third_year taught by clive p4: fourth_year taught by clive p5: first_year taught by clive SUBJECT: biology p2: first_year taught by nicky p4: second_year taught by nicky p5: third_year taught by nicky SUBJECT: prolog++ SUBJECT: accountancy p3: fourth_year taught by diane p4: third_year taught by diane p5: second_year taught by diane yes | ?- timetable::make(5). + first_year - p1 - diane - accountancy + first_year - p2 - phil - prolog++ + second_year - p1 - phil - prolog++ Swap subject... - third_year - p4 - diane - accountancy + third_year - p4 - phil - prolog++ Swap teacher... - third_year - p2 - clive - french + third_year - p2 - diane - accountancy Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... Swap subject... - third_year - p2 - diane - accountancy + third_year - p2 - brian - music Swap teacher... - third_year - p2 - brian - music + third_year - p2 - diane - accountancy Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap teacher... - second_year - p2 - brian - music + second_year - p2 - clive - prolog Swap teacher... Swap teacher... - second_year - p2 - clive - prolog + second_year - p2 - brian - music Swap subject... - third_year - p2 - diane - accountancy + third_year - p2 - clive - french Swap subject... - third_year - p4 - phil - prolog++ + third_year - p4 - diane - accountancy Swap teacher... - third_year - p3 - clive - prolog + third_year - p3 - phil - prolog++ Swap subject... Swap subject... Swap subject... - third_year - p3 - phil - prolog++ + third_year - p3 - clive - prolog Swap subject... - third_year - p4 - diane - accountancy + third_year - p4 - phil - prolog++ Swap teacher... - third_year - p2 - clive - french + third_year - p2 - diane - accountancy + second_year - p2 - clive - prolog Swap subject... - fourth_year - p3 - diane - accountancy + fourth_year - p3 - phil - prolog++ Swap teacher... - fourth_year - p4 - clive - prolog + fourth_year - p4 - diane - accountancy Swap subject... - third_year - p4 - phil - prolog++ + third_year - p4 - clive - french Swap teacher... - third_year - p3 - clive - prolog + third_year - p3 - phil - prolog++ Swap subject... - fourth_year - p3 - phil - prolog++ + fourth_year - p3 - clive - prolog Swap teacher... Swap teacher... Swap subject... - fourth_year - p4 - diane - accountancy + fourth_year - p4 - phil - prolog++ Swap teacher... - fourth_year - p3 - clive - prolog + fourth_year - p3 - diane - accountancy Swap subject... - fourth_year - p3 - diane - accountancy + fourth_year - p3 - clive - prolog Swap teacher... - fourth_year - p3 - clive - prolog + fourth_year - p3 - diane - accountancy Swap subject... - third_year - p3 - phil - prolog++ + third_year - p3 - clive - prolog Swap teacher... - third_year - p5 - nicky - biology + third_year - p5 - phil - prolog++ Swap teacher... - fourth_year - p5 - brian - music + fourth_year - p5 - nicky - biology Swap teacher... Swap teacher... - fourth_year - p5 - nicky - biology + fourth_year - p5 - brian - music Swap teacher... - fourth_year - p5 - brian - music + fourth_year - p5 - nicky - biology Swap teacher... Swap teacher... - fourth_year - p5 - nicky - biology + fourth_year - p5 - brian - music Swap teacher... - fourth_year - p5 - brian - music + fourth_year - p5 - nicky - biology Swap teacher... Swap teacher... - fourth_year - p5 - nicky - biology + fourth_year - p5 - brian - music Swap teacher... - fourth_year - p5 - brian - music + fourth_year - p5 - nicky - biology + third_year - p5 - brian - music yes % the completed timetable is ... | ?- timetable::print. FORM TIMETABLE... FORM: first_year p1: nicky teaches french p2: nicky teaches biology p3: brian teaches maths p4: brian teaches music p5: clive teaches prolog FORM: second_year p1: brian teaches maths p2: brian teaches music p3: nicky teaches french p4: nicky teaches biology p5: diane teaches accountancy FORM: third_year p1: dave teaches maths p2: diane teaches accountancy p3: clive teaches prolog p4: clive teaches french p5: phil teaches prolog++ FORM: fourth_year p1: clive teaches french p2: dave teaches maths p3: diane teaches accountancy p4: phil teaches prolog++ p5: nicky teaches biology PERIOD TIMETABLE ... PERIOD: p1 first_year: nicky teaches french second_year: brian teaches maths third_year: dave teaches maths fourth_year: clive teaches french PERIOD: p2 first_year: nicky teaches biology second_year: brian teaches music third_year: diane teaches accountancy fourth_year: dave teaches maths PERIOD: p3 first_year: brian teaches maths second_year: nicky teaches french third_year: clive teaches prolog fourth_year: diane teaches accountancy PERIOD: p4 first_year: brian teaches music second_year: nicky teaches biology third_year: clive teaches french fourth_year: phil teaches prolog++ PERIOD: p5 first_year: clive teaches prolog second_year: diane teaches accountancy third_year: phil teaches prolog++ fourth_year: nicky teaches biology TEACHER TIMETABLE ... TEACHER: nicky p1: teach french to first_year p2: teach biology to first_year p3: teach french to second_year p4: teach biology to second_year p5: teach biology to fourth_year TEACHER: brian p1: teach maths to second_year p2: teach music to second_year p3: teach maths to first_year p4: teach music to first_year p5: teach music to third_year TEACHER: dave p1: teach maths to third_year p2: teach maths to fourth_year p3: p4: p5: TEACHER: clive p1: teach french to fourth_year p2: teach prolog to second_year p3: teach prolog to third_year p4: teach french to third_year p5: teach prolog to first_year TEACHER: diane p1: teach accountancy to first_year p2: teach accountancy to third_year p3: teach accountancy to fourth_year p4: p5: teach accountancy to second_year TEACHER: phil p1: teach prolog++ to second_year p2: teach prolog++ to first_year p3: p4: teach prolog++ to fourth_year p5: teach prolog++ to third_year SUBJECT TIMETABLE ... SUBJECT: maths p1: second_year taught by brian p1: third_year taught by dave p2: fourth_year taught by dave p3: first_year taught by brian SUBJECT: music p2: second_year taught by brian p4: first_year taught by brian p5: third_year taught by brian SUBJECT: french p1: first_year taught by nicky p1: fourth_year taught by clive p3: second_year taught by nicky p4: third_year taught by clive SUBJECT: prolog p2: second_year taught by clive p3: third_year taught by clive p5: first_year taught by clive SUBJECT: biology p2: first_year taught by nicky p4: second_year taught by nicky p5: fourth_year taught by nicky SUBJECT: prolog++ p1: second_year taught by phil p2: first_year taught by phil p4: fourth_year taught by phil p5: third_year taught by phil SUBJECT: accountancy p1: first_year taught by diane p2: third_year taught by diane p3: fourth_year taught by diane p5: second_year taught by diane yes