The goal of this exercise if to simulate the students within the Semantics course using logic programming. We will use LogicKit, a MicroKanren implementation in Swift.
Using the example, define all the students.
Write a predicate is_student(who: Term) -> Goal that returns true if its parameter is a student,
or false otherwise.
Write a function all_students() -> [Student] that returns all the students.
Attendance is a relation between a student, a course and a year. Define it.
Write a goal attends(who: Term, course: Term, year: Term) -> Goal that returns true
for the correct attendances.
The goal of this exercise is to represent and manipulate lists.