Articles of Haskell

¿Cómo llamamos a esta (nueva?) Función de orden superior?

Estoy tratando de nombrar lo que creo que es una nueva idea para una función de orden superior. A la parte importante, aquí está el código en Python y Haskell para demostrar el concepto, que se explicará más adelante. Pitón: >>> def pleat(f, l): return map(lambda t: f(*t), zip(l, l[1:])) >>> pleat(operator.add, [0, 1, 2, […]

Equivalente de python eval en Haskell

Hay una función en python llamada eval que toma entrada de cadena y la evalúa. >>> x = 1 >>> print eval(‘x+1′) 2 >>> print eval(’12 + 32’) 44 >>> ¿Cuál es el equivalente de Haskell de la función eval ?

Simulación del algoritmo de signo M2Crypto de Python en Haskell

Estoy tratando de producir una firma RSA en Haskell que coincida con la misma firma del M2Crypto de Python. Creo que mi problema es el hecho de que Codec.Crypto.RSA está usando el algoritmo PKCS1 v1.5 y M2Crypto está usando algo diferente. De hecho, cuando uso PKCS1 v1.5 en Python, obtengo los mismos resultados que Haskell. […]

¿Por qué este progtwig Haskell es mucho más lento que el de Python equivalente?

Como parte de un desafío de progtwigción, debo leer, desde stdin, una secuencia de enteros separados por espacios ( en una sola línea ), e imprimir la sum de esos enteros en stdout. La secuencia en cuestión puede contener hasta 10,000,000 enteros. Tengo dos soluciones para esto: una escrita en Haskell ( foo.hs ) y […]

Python, Ruby, Haskell: ¿Proporcionan verdadero multiproceso?

Estamos planeando escribir una aplicación altamente concurrente en cualquiera de los lenguajes de progtwigción de muy alto nivel. 1) ¿Python, Ruby o Haskell admiten el multihilo verdadero? 2) Si un progtwig contiene subprocesos, ¿una máquina virtual asignará trabajo automáticamente a múltiples núcleos (o a las CPU físicas si hay más de 1 CPU en la […]

¿Implementación de máquina de estado limpia y segura en un lenguaje estático?

Implementé una máquina de estado simple en Python: import time def a(): print “a()” return b def b(): print “b()” return c def c(): print “c()” return a if __name__ == “__main__”: state = a while True: state = state() time.sleep(1) Quería trasladarlo a C, porque no era lo suficientemente rápido. Pero C no me […]

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

Python equivalente de Haskell (para indexar una lista)

Tengo una lista de elementos en python. No sé el número de elementos en la lista. Me gustaría añadir índices a la lista. En Haskell, podría hacer lo siguiente zip [1..] “abcdefghijklmnop” [(1,’a’),(2,’b’),(3,’c’),(4,’d’),(5,’e’),(6,’f’),(7,’g’),(8,’h’),(9,’i’),(10,’j’),(11,’k’),(12,’l’),(13,’m’),(14,’n’),(15,’o’),(16,’p’)] Ahora imagina que la cadena era de tamaño desconocido. Esto todavía funcionaría en Haskell, y la lista de enteros proporciona tantos enteros […]

¿Hay un equivalente en Python del ‘let’ de Haskell?

¿Existe un equivalente en Python de la expresión ‘let’ de Haskell que me permita escribir algo como: list2 = [let (name,size)=lookup(productId) in (barcode(productId),metric(size)) for productId in list] Si no, ¿cuál sería la alternativa más legible ? Agregado para aclarar la syntax de let: x = let (name,size)=lookup(productId) in (barcode(productId),metric(size)) es equivalente a (name,size) = lookup(productId) […]

Lista de comprensión en Haskell, Python y Ruby.

Comencé a buscar en el sitio del proyecto Euler como una forma de aprender Haskell y mejorar mi Python y Ruby. Creo que las versiones de Haskell y Python están bien, pero estoy seguro de que debe haber una forma más limpia para Ruby. No se trata de cómo puedo hacer que un idioma se […]