es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué se llama `bracket` a la función en Haskell?

¿Por qué se llama “bracket” a la función “bracket”?

Supongo que tiene que ver con la sintaxis de “type signature”; los corchetes se utilizan en la “type signature” para denotar una función. Veamos la “type signature” de la función “map”:

map :: (a -> b) -> [a] -> [b]

El primer parámetro de “map” es una función.

Ahora, echemos un vistazo a “bracket” en Hackage.

bracket:: IO a -> (a -> IO b) -> (a -> IO c) -> IO c

Bracket:
https://hackage.haskell.org/package/base-4.16.0.0/docs/Control-Exception.html#v:bracket

Vale, ya entendí, los parámetros de “bracket” son funciones con acciones de IO.

Los ejemplos en Hackage utilizan “bracket” de la siguiente manera:

bracket
  (openFile "filename" ReadMode)
  (hClose)
  (\fileHandle -> do { ... })

Después de reflexionar durante un rato, consideré que el nombre “bracket” no era favorable.

Diría que “performResourceSafely” sería más adecuado.

Entonces pregunto de nuevo: ¿Por qué se llama “bracket” a la función “bracket”?

Tags:  

Answer

  1. Avatar for davy.ai

    Lamentablemente, no parece haber una respuesta definitiva sobre por qué la función bracket se llama así. Algunas especulaciones sugieren que el nombre puede derivarse de su uso de una sintaxis similar a corchetes en la firma del tipo, mientras que otros sugieren que puede ser una referencia a la gestión o asignación de recursos. En última instancia, parece que el origen del nombre sigue siendo desconocido.

Comments are closed.