[Python-es] Es coconut solamente azucar sintactico?

Mario R. Osorio nimbiotics en gmail.com
Vie Abr 26 14:56:00 EDT 2019


¿Me pueden informar cuál es el blog de Chema?

Dtb/Gby
=======
Mario R. Osorio
B.A.S. of Information Technology
Web page: *http;//mario.osorio.solutions
<http://http%3B//mario.osorio.solutions>*
Email: *mario en osorio.solutions* <mario en osorio.solutions>
*Just Choose Python!* <http://www.gentoogeek.org/files/choose_python.pdf>

*SQL programmers don't die, they just ROLLBACK the TRANSACTION.*



On Fri, Apr 26, 2019 at 12:14 PM Francesc Alted <faltet en gmail.com> wrote:

> Yo también me alegro que los lenguajes funcionales se empiecen a tomar en
> serio en ámbitos cada vez más amplios.  No acabo de estar totalmente con
> Chema cuando dice en su blog que las construcciones funcionales estan
> siendo arrinconcadas en Python; personalmente, uso mucho los
> iteradores/generadores, que estan considerados como constructos
> funcionales, y que creo que estan en la base de muchas librerias Python.
>
> De todas maneras habrá que seguir con mucho interés a Chema en lo que se
> prevé como una prometedora serie de artículos sobre coconut en su blog:
> https://blog.ch3m4.org/2019/04/16/que-es-un-coconut/ (aunque esperemos
> que las apariciones de Enrique y Ana no se prodiguen demasiado ;-)
>
> Saludos!
>
> Missatge de Chema Cortes <pych3m4 en gmail.com> del dia dv., 26 d’abr. 2019
> a les 11:54:
>
>>
>> El vie., 26 abr. 2019 a las 4:39, AGTUGO (<agtugo en gmail.com>) escribió:
>>
>>> Perdon la traduccion de syntatic sugar pero es lo que se me ocurri'o. Lo
>>> que mas esperaba de coconut es verificaci'on de tipos en funciones, no hay.
>>> El objetivo es escribir mas claro el programa con estilo funcional? Aveces
>>> uso decoradores para revisar los tipos, solamente cuando es necesario
>>> pensaba que coconut podria ahorrarme la molestia.
>>>
>>>
>> Yo no lo consideraría como *syntatic sugar*. Aunque opcional, puedes
>> activar el modo estricto y las comprobaciones de tipos con mypy. Lo único a
>> tener en cuenta es que la versión de python objetivo (*target*) debe
>> tener soporte para notación de tipos para que mypy lo procese. O sea, debes
>> usar un target superior a 3 en lugar del target universal que usa por
>> defecto:
>>
>>     https://coconut.readthedocs.io/en/latest/DOCS.html#allowable-targets
>>
>> Aunque no necesitas coconut. Para chequear tipos puedes usar algún linter
>> con mypy en el IDE que uses (por ejemplo, visual code con pylama).
>>
>>
>> Por seguir con coconut, tiene comprobación de patrones, tanto en
>> asignación como en definición de función. Por ejemplo, se puede definir la
>> función factorial como:
>>
>> def factorial(0) = 1
>> @addpattern(factorial)def factorial(n is int if n > 0) =
>>     range(1, n+1) |> reduce$(*)
>>
>> No tienen *returns*, casi podría decirse que son funciones lambdas. Pero
>> implícitamente saldrá un error si el argumento no es cero o un entero
>> positivo, por lo que hace bastante más que una simple función lambda.
>>
>> Por otro lado, el reduce se está aplicando parcialmente con el operador
>> multiplicación. Se podría hacer igual con reduce, partial y mul que puedes
>> "rescatar" de algunos módulos donde han sido exiliados en python. Pero en
>> coconut son entidades de primer orden que, además, puedes combinar con
>> otras inexistentes en python como la evaluación perezosa de listas (lazy
>> lists) o el procesamiento paralelo (útil en monads).
>>
>>
>> Saludos.
>>
>>
>> --
>> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
>> https://blog.ch3m4.org
>> Buscador Python Hispano: http://busca.ch3m4.org
>> <https://blog.ch3m4.org/pages/busqueda-python-es/>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
>
>
> --
> Francesc Alted
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20190426/d953d368/attachment.html>


Más información sobre la lista de distribución Python-es