Articles of currying

¿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.

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?

¿Por qué Scala proporciona listas de parámetros múltiples y múltiples parámetros por lista?

Múltiples listas de parámetros, por ejemplo, def foo(a:Int)(b:Int) = {} y múltiples parámetros por lista, p. Ej. def foo(a:Int, b:Int) = {} son semánticamente equivalentes por lo que puedo decir , y la mayoría de los lenguajes funcionales tienen una sola forma de declarar múltiples parámetros, por ejemplo, F #. La única razón por la […]

Utilidad (como en aplicaciones prácticas) de Currying vs Parial Application en Scala

Estoy tratando de entender las ventajas de currying sobre aplicaciones parciales en Scala. Por favor considere el siguiente código: def sum(f: Int => Int) = (a: Int, b: Int) => f(a) + f(b) def sum2(f: Int => Int, a: Int, b: Int): Int = f(a) + f(b) def sum3(f: Int => Int)(a: Int, b: Int): […]

¿Cuál es la diferencia entre múltiples listas de parámetros y múltiples parámetros por lista en Scala?

En Scala, uno puede escribir (¿curry?) Funciones como esta def curriedFunc(arg1: Int) (arg2: String) = { … } ¿Cuál es la diferencia entre la definición de función curriedFunc anterior con dos listas de parámetros y funciones con múltiples parámetros en una sola lista de parámetros? def curriedFunc(arg1: Int, arg2: String) = { … } Desde […]

Scala currying vs funciones parcialmente aplicadas

Me doy cuenta de que hay varias preguntas aquí sobre qué currying y funciones parcialmente aplicadas, pero estoy preguntando sobre cómo son diferentes. Como un simple ejemplo, aquí hay una función curried para encontrar números pares: def filter(xs: List[Int], p: Int => Boolean): List[Int] = if (xs.isEmpty) xs else if (p(xs.head)) xs.head :: filter(xs.tail, p) […]

¿Cuál es la diferencia entre currying y aplicación parcial?

A menudo veo en Internet varias quejas de que los ejemplos de otros pueblos de currying no son currying, pero en realidad son solo aplicaciones parciales. No he encontrado una explicación decente de qué aplicación parcial es, o cómo difiere de currying. Parece haber una confusión general, con ejemplos equivalentes que se describen como currying […]

¿Qué es ‘Currying’?

He visto referencias a funciones con curry en varios artículos y blogs, pero no puedo encontrar una buena explicación (¡o al menos una que tenga sentido!)