IIC2233 / syllabus-2021-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🚀✨
https://iic2233.github.io
38 stars 49 forks source link

Duda sobre problemas al definir funciones lambda (Semana 10) #463

Closed FVivess closed 3 years ago

FVivess commented 3 years ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Lo que ocurre es que cuando quiero escribir una función lambda de la forma en que se define en los apuntes, ocurre que se cambia el formato. Por ejemplo, si quiero definir una función simple, como: funcion = lambda x: x+1

al ejecutar el programa, el código se cambia automáticamente a: def funcion(x): return x+1

No estoy seguro si este es el resultado esperado, pero me imagino que no, ya que en los apuntes dice que existen diferencias entre una función definida de manera normal, y una función lambda (y lo que ocurre aquí es que se redefine la función lambda como una normal).

¿Como puedo hacer que deje de pasar esto? (utilizo VSCode para programar)

tqmbanados commented 3 years ago

Hola! En ese caso, ambas líneas son prácticamente iguales. La diferencia es algo de sintaxis, y es preferible usar la versión def funcion(x): return x+1. Entonces, probablemente tu programa está haciendo el cambio automáticamente. En esto me puede ayudar algún profesor, pero las funciones lambda no están hechas para definir funciones con nombre, si no más bien ofrecerse como funciones "temporales" en un contexto específico. Por ejemplo, para el key de funciones sort, max, min, y las funciones de manejo de iterables de los contenidos. No es un problema demasiado grave en todo caso, es sólo tu linter ayudándote a escribir mejor código. Igual encuentro raro que lo corrija sin preguntarte, probablemente haya alguna opción en preferencias para desactivarlo.

Espero haberte sido de ayuda!