Articles of funcional progtwigción

Entendiendo el comportamiento de la función lambda anidada en Python

Estoy tratando de aprender progtwigción pura funcional. Pero este código me desconcierta particularmente en la segunda línea. No entiendo cómo se pasa el valor 2 a la variable x . ¿Alguien puede explicar este comportamiento lambda nested? >>> square_func = lambda x: x**2 >>> function_product = lambda F, m: lambda x: F(x)*m >>> square_func(2) 4 […]

¿FlatMap o bind en Python 3?

Python proporciona listas de comprensión que proporcionan funciones de tipo de mapa / filtro. ¿Puedo hacer una operación de enlace flatMap aka con esto? He visto soluciones con itertools u otras bibliotecas complementarias. ¿Puedo hacer esto con el núcleo de Python? # this [[x,10*x] for x in [1,2,3]] # will result in unflattened [[1, 10], […]

¿Hay algo como la macro de subprocesamiento de Clojure en Python?

En Clojure puedo hacer algo como esto: (-> path clojure.java.io/resource slurp read-string) en lugar de hacer esto: (read-string (slurp (clojure.java.io/resource path))) Esto se llama subprocesamiento en la terminología de Clojure y ayuda a deshacerse de muchos paréntesis. En Python, si bash usar construcciones funcionales como map , any , o filter , tengo que anidarlas […]

¿Python tiene una función incorporada para intercalar generadores / secuencias?

Noté que itertools no (me parece a mí) tiene una función capaz de intercalar elementos de varios otros objetos iterables (en lugar de comprimirlos): def leaf(*args): return (it.next() for it in cycle(imap(chain,args))) tuple(leaf([‘Johann’, ‘Sebastian’, ‘Bach’], repeat(‘ ‘))) => (‘Johann’, ‘ ‘, ‘Sebastian’, ‘ ‘, ‘Bach’, ‘ ‘) (Editar) La razón por la que pregunto es […]

Generador que deja un marcador de posición al principio y al final del iterador de entrada intacto

Tomemos una lista como ejemplo: a = [255, 255, 1, 255, 255, 255, 1, 2, 255, 255, 2, 255, 255, 3, 255, 3, 255, 255, 255] 255 es un valor especial en ello. Es un marcador de posición. He hecho un generador que reemplaza algunos de los marcadores de posición dentro de la lista. Funciona […]

Transformada perezosa en C ++

Tengo el siguiente fragmento de código de Python que me gustaría reproducir utilizando C ++: from itertools import count, imap source = count(1) pipe1 = imap(lambda x: 2 * x, source) pipe2 = imap(lambda x: x + 1, pipe1) sink = imap(lambda x: 3 * x, pipe2) for i in sink: print i He oído […]

Calcular una cadena de funciones en python.

Quiero obtener el resultado de una cadena de cálculos de un valor inicial. En realidad estoy usando el siguiente código: def function_composition(function_list, origin): destination = origin for func in function_list: destination = func(destination) return destination Con cada función en function_list teniendo un solo argumento. Me gustaría saber si hay una función similar en la biblioteca […]

¿Hay un equivalente de Python para la opción de Scala o cualquiera?

Realmente disfruto usando las mónadas Option y Oither en Scala. ¿Hay algún equivalente para estas cosas en Python? Si no los hay, ¿cuál es la forma pythonica de manejar los errores o la “ausencia de valor” sin lanzar excepciones?

Python alternativa a reducir ()

Hay un artículo semi-famoso escrito por el mismo Guido que insinúa que reduce() debería ir por el camino del dodo y dejar el idioma. Incluso fue degradado por ser una función de nivel superior en Python 3 (en lugar de ser rellenado en el módulo functools ). Con muchas otras grapas de progtwigción funcional (mapa, […]

Desafío de recursión de Python

Actualmente estoy en una introducción a Python y clase de teoría computacional, y recientemente hubo una pregunta difícil sobre el examen que simplemente no pude resolver. Implica escribir código para un progtwig que agrega números. Creo que se supone que la pregunta usa recursión. No recuerdo cómo se redactó exactamente la pregunta, pero aquí está […]