Question: Racket code only please. Can someone help with my code? I am not sure what I am doing wrong. Using the logical operators, and, or,

Racket code only please. Can someone help with my code? I am not sure what I am doing wrong. Racket code only please. Can someone help with my code? I am

Using the logical operators, and, or, implies, not, and iff, and atoms representing truth values, we can make a list that would represent proposition: For instance: '(A and (not A)), or '((B iff (A or C)) implies (not (C implies A))) would represent the formal statements (AA) and ((B (AC)(C A))). We use the following convention when we represent propositions in this way: for every operator unary or binary there corresponds at least one pair of parentheses defining its scope (and perhaps more). Thus, the lists (A and not A) and (B iff A or C) are not permitted but ((A and ((not A))) and (B iff (((A or C)))) are acceptable. 1. Define collect-prop-variables, which will take as input a list representing a proposition, and return a list, representing a set, of all the variables used in the expression. Example: (collect-prop-variables '(A and (not A))) should return '(A) and (collect-prop-variables '((B iff (A or C)) implies (not (C implies A))) ) should return '(A B C).

Test cases:

(collect-prop-variables2 '(A and (not A))) ; should return '(A) (collect-prop-variables2 '((B iff (A or C)) implies (not (C implies A))) ) ; should return '(A B C) (collect-prop-variables '(((A iff B)) or (((not D) and A)))) ; should return '(B A D)

Language: racket, with debugging; memory limit: 128MB. (set 'A) (set 'C 'B) car: contract violation expected: pair? given: ' D

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!