/* Syntax: grad(SSN,List) SSN#1000 - a student who is eligible to graduate SSN#1001 - a student who has taken a few courses and needs to take some more to graduate SSN#1002 - a new Student */ ?- grad(1000,_). Yes ?- grad(1001,L). 'To graduate # courses the student needs to take is '5 'Courses already taken ==> '[no6, no5, no4, no10, no9, no8] 'For graduation the student has the following choice of courses' L = [no11, no7, no3, no2, no1] ; L = [no12, no7, no3, no2, no1] ; L = [no7, no11, no3, no2, no1] ; L = [no12, no11, no3, no2, no1] ; L = [no7, no12, no3, no2, no1] ; L = [no11, no12, no3, no2, no1] ; L = [no11, no3, no7, no2, no1] ; L = [no12, no3, no7, no2, no1] ; L = [no3, no11, no7, no2, no1] ; L = [no12, no11, no7, no2, no1] Yes ?- grad(1002,L). 'To graduate # courses the student needs to take is '11 'Courses already taken ==> '[] 'For graduation the student has the following choice of courses' L = [no11, no10, no9, no8, no7, no6, no5, no4, no3|...] ; L = [no12, no10, no9, no8, no7, no6, no5, no4, no3|...] ; L = [no10, no11, no9, no8, no7, no6, no5, no4, no3|...] ; L = [no12, no11, no9, no8, no7, no6, no5, no4, no3|...] ; L = [no10, no12, no9, no8, no7, no6, no5, no4, no3|...] ; L = [no11, no12, no9, no8, no7, no6, no5, no4, no3|...] Yes ?-