(define (place-queen board i j) (let ; copy the board that is got from function. ; I will change it via (vector-set!) and return it [(output (vector-copy board))] (begin ; set the queen (vector-set! (vector-ref output i) j 'q) ; set the positions that it is threatening (for-each (lambda (item) ; (car item) is column ; (cadr item) is row (vector-set! (vector-ref output (car item)) (cadr item) #f)) (get-threatened-positions (vector-length board) i j)) ; I modified the output. Now return it. (printf "Output is ~a\n" output) (printf "Board is ~a\n" board))))