(define (list->assoc lis) (cond ;((and (proper-list? lis) (> (length lis) 2)) ((and (pair? lis) (> (length lis) 2)) (cons (list (car lis) (cadr lis)) (list->assoc (cddr lis))) ) ;((and (proper-list? lis) (= (length lis) 2)) ((and (pair? lis) (= (length lis) 2)) (list lis) ) (else lis) ) )