En la ciencia de la computacióncurrificar es la técnica inventada por Moses Schönfinkel y Gottlob Frege que consiste en transformar una función que utiliza múltiplesargumentos (o más específicamente una n-tupla como argumento) en una función que utiliza un único argumento.

El nombre «currificar», acuñado por Christopher Strachey en 1967, es una referencia al lógico Haskell Curry. Un nombre alternativo, Schönfinkelisation, ha sido propuesto.

Dada una función f del tipo  f \colon (X \times Y) \to Z currificándola sería una función del tipo  \mbox{curry}(f) \colon X \to (Y \to Z) . En otras palabras,  \mbox{curry}(f)  toma un argumento del tipo  X  y retorna una función del tipo  Y \to Z Descurrificar es la transformación inversa.

Intuitivamente, la currificación expone que «Si ajustas algunos argumentos, tendrás una función de los argumentos restantes». Por ejemplo, si la función div significa la versión currificada de la operación x / y, entonces div con el parámetro x ajustado en 1 es otra función: igual que la función inv que devuelve la inversa multiplicativa de sus argumentos, definida por inv(y) = 1 / y.

La motivación práctica para currificar es que en ocasiones, muy seguidas, las funciones obtenidas al utilizar algunos, pero no todos, los argumentos en una función currificada pueden resultar útiles; por ejemplo, muchos lenguajes tienen una función o un operador similar a plus_one. Currificar hace fácil definir dichas funciones.


Gracias por apoyar el libre conocimiento con tu donación!
Bitcoin: bc1q4sw9260twfcxatj8mjp7358cyvrf8whzlelyhj
Ethereum: 0xFb93D2a3c9d1A0b83EE629c2dE1725BCa192e581
Litecoin: LbFduJmHvQXcpCnwfUT7aJ4DYoWSL3iQw8
Dogecoin: D7QQVqNR5rk215A4zd2gyzV9P2bLQtZHFV
Transferencia bancaria en México:
Cuenta CLABE: 661610005838513425 Nombre: Masterhacks LATAM Banco: Alternativos

Unete a nuestros grupos:
WhatsApp: https://chat.whatsapp.com/HcazyklpyeU4X3BF657KFQ
Telegram: https://t.me/masterhacks_net
Canal de WhatsApp https://whatsapp.com/channel/0029VaBBLCn5vKAH9NOWCl3K

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *