(define country Capital -> (traverse Capital [["London" | "Great Britain"] ["Paris" | "France"] ["Madrid" | "Spain"] ["Amsterdam" | "Holland"] ["Berlin" | "Germany"] ["Warsaw" | "Poland"] ["Vienna" | "Austria"]])) (define traverse _ [] -> "don’t know" Capital [[Capital | Country] | _] -> Country Capital [_ | Table] -> (traverse Capital Table)) (define cartesian-product [ ] _ -> [ ] [X | Y] Z -> (append (pairs X Z) (cartesian-product Y Z))) (define pairs _ [ ] -> [ ] X [Y | Z] -> [[X Y] | (pairs X Z)]) (define powerset [] -> [[]] [X | Y] -> (append (subsets X (powerset Y)) (powerset Y))) (define subsets _ [ ] -> [ ] X [Y | Z] -> [[X | Y] | (subsets X Z)])