Me respondieron en otro lado y respondo acá por si alguien tiene la misma duda.
En el b) el map va avanzando sobre la misma lista, por lo que sería como que hace 1: map (+1) [1. 2do elem, 3er elem,...] = 1: [(+1) 1, (+1) 2do elem, (+1) 3er elem, .....] como que se queda esperando los elementos restantes y a medida que los genera les aplica la funcion. No se si es correcto del toda mi explicación.
En el d) lo que hace el map repeat es aplicarse sobre cada elemento de la lista b entonces queda
a = [[1,1, .... ], [2,2, .....], ...] y tomando (take 8 . head) a da [1,1,1,1,1,1,1,1]