Explicaciones funcionales y explicaciones programáticas