2.43
; Louis Reasoner is having a terrible time doing Exercise 2.42. His queens
; procedure seems to work, but it runs extremely slowly. (Louis never does
; manage to wait long enough for it to solve even the 6 × 6 case.) When Louis
; asks Eva Lu Ator for help, she points out that he has interchanged the order
; of the nested mappings in the flatmap, writing it as
;
; (flatmap
; (lambda (new-row)
; (map (lambda (rest-of-queens)
; (adjoin-position new-row k rest-of-queens))
; (queen-cols (- k 1))))
; (enumerate-interval 1 board-size))
;
; Explain why this interchange makes the program run slowly. Estimate how long
; it will take Louis’s program to solve the eight-queens puzzle, assuming that
; the program in Exercise 2.42 solves the puzzle in time T.
; Answer
; ==============================================
; In Louis's program, position of `queen-cols` and `enumerate-interval` is
; exchanged. Hence for every item in `enumerate-interval`, `queen-cols` gets
; called. Hence during every recursion, it is calculated `board-size` times
; There is unnecessary duplication of (size^size) times
; If previous program takes time T, we have (size^size) x T for Louis's program