;;; Name: ;;; Email: ;;; Q1. ; YOUR CODE HERE (query (add-to-all a ((b) (c d)) ((a b) (a c d)))) ; expect Success! (query (add-to-all a ((b c) (b) (foo)) ?what)) ; expect Success! ; what: ((a b c) (a b) (a foo)) (query (add-to-all ?what ((c) (d e) ()) ((b c) (b d e) (b)))) ; expect Success! ; what: b (query (add-to-all ?what ?list ((b c) (d e) (b)))) ; expect Failed. ;;; Q2. (fact (append () ?a ?a)) (fact (append (?x . ?r) ?b (?x . ?c)) (append ?r ?b ?c)) ; YOUR CODE HERE (query (sublists (1 2 3) ?subs)) ; expect Success! ; subs: (() (3) (2) (2 3) (1) (1 3) (1 2) (1 2 3)) ;;; Q3. (fact (fruits apple banana cherry date elderberry fig guava)) ; YOUR CODE HERE (query (fruits-tail date elderberry fig guava)) ; expect Success! (query (fruits-tail banana . ?after-banana)) ; expect Success! ; after-banana: (cherry date elderberry fig guava) (query (fruits-tail ?e fig guava)) ; expect Success! ; e: elderberry ;;; Q4. (fact (prefix () ?s)) (fact (prefix (?first . ?p) (?first . ?s)) (prefix ?p ?s)) ; YOUR CODE HERE (query (fruit-range cherry guava (date elderberry fig))) ; expect Success! (query (fruit-range cherry elderberry date)) ; expect Failed. (query (fruit-range cherry elderberry ?between)) ; expect Success! ; between: (date) (query (fruit-range cherry date ())) ; expect Failed. (query (fruit-range banana fig ?between)) ; expect Success! ; between: (cherry date elderberry) ;;; Q5. ; sentence : optional-article noun verb optional-article noun ; optional-article : "the" | ; noun : "boy" | "cat" ; verb : "carries" | "feeds" ; logic> (query (noun (boy feeds cat) (feeds cat))) ; Success! ; logic> (query (sentence (the boy feeds the cat and so forth) (and so forth))) ; Success! ; logic> (query (noun (boy cat feeds) ?r)) ; Success! ; r: (cat feeds) ; logic> (query (optional-article (a boy) (boy))) ; Success! ; logic> (query (optional-article (cat feeds boy) (cat feeds boy))) ; Success! (fact (noun (boy . ?r) ?r)) (fact (noun (cat . ?r) ?r)) (fact (verb (carries . ?r) ?r)) (fact (verb (feeds . ?r) ?r)) ; YOUR CODE HERE (query (optional-article (the boy) (boy))) ; expect Success! (query (optional-article (cat feeds boy) (cat feeds boy))) ; expect Success! (query (optional-article (the cat feeds boy) (cat feeds boy))) ; expect Success! (query (optional-article (the cat feeds boy) (the cat feeds boy))) ; expect Success! (query (optional-article (feeds boy) ?x)) ; expect Success! ; x: (feeds boy) (query (optional-article ?x (cat feeds boy))) ; expect Success! ; x: (cat feeds boy) ; x: (the cat feeds boy) (query (sentence (the boy carries cat) ())) ; expect Success! (query (sentence (the ?sub carries the ?obj) ())) ; expect Success! ; sub: boy obj: boy ; sub: boy obj: cat ; sub: cat obj: boy ; sub: cat obj: cat