Articles of funcional progtwigción

¿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á […]

Búsqueda de la amplitud funcional

La primera búsqueda de profundidad funcional es encantadora en los gráficos acíclicos dirigidos. Sin embargo, en los gráficos con ciclos, ¿cómo evitamos la recursión infinita? En un lenguaje de procedimiento marcaría nodos cuando los golpeara, pero digamos que no puedo hacer eso. Una lista de nodos visitados es posible, pero será lenta porque usar uno […]

¿En qué se diferencia el ciclo de lectura-evaluación-impresión de Lisp del de Python?

Me he encontrado con una siguiente statement de Richard Stallman : ‘Cuando inicia un sistema Lisp, ingresa en un ciclo de lectura-evaluación-impresión. La mayoría de los otros idiomas no tienen nada comparable a leer, nada comparable a eval, y nada comparable a imprimir. ¡Qué enormes deficiencias! ‘ Ahora, hice muy poca progtwigción en Lisp, pero […]

zip_longest sin valor de relleno

Estoy buscando un punto intermedio entre las funciones zip de Python y zip_longest (del módulo itertools ), que agota todos los iteradores dados, pero no llena nada. Entonces, por ejemplo, debería transponer tuplas como tales: (11, 12, 13 ), (11, 21, 31, 41), (21, 22, 23, 24), –> (12, 22, 32, 42), (31, 32 ), […]