Articles of funcional progtwigción

Muestreo de secuencias de números aleatorios en Haskell

Necesito pequeñas listas de números aleatorios gaussianos para una simulación, así que probé lo siguiente: import System.Random seed = 10101 gen = mkStdGen seed boxMuller mu sigma (r1,r2) = mu + sigma * sqrt (-2 * log r1) * cos (2 * pi * r2) Este es solo el algoritmo Box-Muller: dados los números aleatorios […]

¿Java es compatible con Currying?

Me preguntaba si hay alguna forma de lograr eso en Java. Creo que no es posible sin soporte nativo para cierres.

¿Por qué la evaluación perezosa es útil?

Me he estado preguntando por qué la evaluación perezosa es útil. Todavía tengo que pedirle a alguien que me explique de una manera que tenga sentido; sobre todo, termina hirviendo para “confiar en mí”. Nota: no me refiero a la memorización.

Pedido de parámetros para hacer uso del currying

He cambiado el código de dos veces recientemente para cambiar el orden de los parámetros porque había demasiados códigos en los que se producían hacks como flip o \x -> foo bar x 42 . Al diseñar una función, ¿qué principios me ayudarán a aprovechar al máximo el currículum?

¿Cuál es el estado de la progtwigción multinúcleo en Haskell?

¿Cuál es el estado de la progtwigción multinúcleo en Haskell? ¿Qué proyectos, herramientas y bibliotecas están disponibles ahora? ¿Qué informes de experiencia ha habido?

¿Por qué los lenguajes funcionales?

Veo hablar mucho sobre idiomas funcionales y otras cosas. ¿Por qué usarías uno sobre un idioma “tradicional”? ¿Qué hacen mejor? ¿En qué están peor? ¿Cuál es la aplicación de progtwigción funcional ideal?

Currying una función que toma argumentos infinitos

Usando ES5, ¿cómo curry una función que toma argumentos infinitos. function add(a, b, c) { return a + b + c; } La función anterior solo tiene tres argumentos, pero queremos que nuestra versión curry sea capaz de tomar infinitos argumentos. Por lo tanto, de todos los siguientes casos de prueba deberían pasar: var test […]

std :: bind overload resolution

El siguiente código funciona bien #include using namespace std; using namespace std::placeholders; class A { int operator()( int i, int j ) { return i – j; } }; A a; auto aBind = bind( &A::operator(), ref(a), _2, _1 ); Esto no lo hace #include using namespace std; using namespace std::placeholders; class A { int […]

¿El operador de mónada se acerca (>> =) más cerca de la composición de la función (encadenamiento) o la aplicación de la función?

En muchos artículos he leído que el operador mónada >>= es una forma de representar la composición de la función. Pero para mí está más cerca de algún tipo de aplicación de función avanzada ($) :: (a -> b) -> a -> b (>>=) :: Monad m => ma -> (a -> mb) -> mb […]

Usos para la función de identificación Haskell

¿Cuáles son los usos para la función de identificación en Haskell?