Welcome to DrScheme, version 4.2.1 [3m]. Language: Swindle; memory limit: 128 megabytes. ======================================= CMPU-145, Fall 2012 Lab 2 Solutions ======================================= ------------------------ 1: Range ------------------------ **** Version 1: RANGE using MAP and REM-DUPES (range '((1 2) (1 3) (1 4) (2 3) (2 4) (3 5) (3 1) (1 6))) ====> (2 3 4 5 1 6) (range '((1 a) (1 b) (1 c) (2 a) (3 a) (4 b) (4 c) (5 c) (4 d) (5 a))) ====> (b c d a) (range ()) ====> () **** Version 2: RANGE-WR using accumulator-based helper function, RANGE-ACC (range-wr '((1 2) (1 3) (1 4) (2 3) (2 4) (3 5) (3 1) (1 6))) ====> (6 1 5 4 3 2) (range-wr '((1 a) (1 b) (1 c) (2 a) (3 a) (4 b) (4 c) (5 c) (4 d) (5 a))) ====> (d c b a) (range-wr ()) ====> () ------------------------ 2: Converse ------------------------ (converse '((1 2) (1 3) (1 4) (2 3) (2 4))) ====> ((2 1) (3 1) (4 1) (3 2) (4 2)) (converse ()) ====> () (converse '((1 a) (1 b) (1 c) (2 b) (2 e) (1 f) (1 g))) ====> ((a 1) (b 1) (c 1) (b 2) (e 2) (f 1) (g 1)) ------------------------ 3: Symmetric? ------------------------ **** Version 1: Using REMOVE to get rid of pairs that are no longer needed (symmetric? ()) ====> #t (symmetric? '((1 2) (3 4) (5 6) (4 3) (6 5) (3 3) (2 1))) ====> #t (symmetric? '((1 2) (3 4) (5 6) (4 3) (2 4))) ====> #f **** Version 2: Calling a helper function that keeps track of original list of pairs (symmetrick? ()) ====> #t (symmetrick? '((1 2) (3 4) (5 6) (4 3) (6 5) (3 3) (2 1))) ====> #t (symmetrick? '((1 2) (3 4) (5 6) (4 3) (2 4))) ====> #f **** Version 3: Using MAP (symm? ()) ====> #t (symm? '((1 2) (3 4) (5 6) (4 3) (6 5) (3 3) (2 1))) ====> #t (symm? '((1 2) (3 4) (5 6) (4 3) (2 4))) ====> #f >