Estoy tratando de comprender la progtwigción de estilo orientado a objetos en Haskell, sabiendo que las cosas van a ser un poco diferentes debido a la falta de mutabilidad. He jugado con clases de tipo, pero mi comprensión de ellas está limitada a ellas como interfaces. Así que he codificado un ejemplo de C ++, […]
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 […]
Me preguntaba si hay alguna forma de lograr eso en Java. Creo que no es posible sin soporte nativo para cierres.
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.
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? ¿Qué proyectos, herramientas y bibliotecas están disponibles ahora? ¿Qué informes de experiencia ha habido?
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?
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 […]
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 […]
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 […]