Length in Logic
This problem uses the Logic starter file located here.
Write facts to define
length. You may use anything already included in the starter file as well as other facts defined in previous questions.
(fact (length ; YOUR CODE HERE )) (query (length (1 2 3) 3)) ; expect Success! (query (length (1 2 3 4 5) ?length)) ; expect Success! ; length: 5
(fact (length () 0)) (fact (length (?first . ?rest) ?num) (increment ?some-num ?num) (length ?rest ?some-num))
First we define our base fact. The length of the empty list is 0. Then, in our recursive fact, we break up the list into
rest. The length of the entire list is the length of the
rest incremented by 1. So, we create a temporary variable
some-num that relates the length of the
rest with the length of the entire list.
I don't claim to be perfect so if you find an error on this page, please send me an email preferably with a link to this page so that I know what I need to fix!