Captura de pantalla de este vídeo: https://www.youtube.com/watch?v=Bsdl_NKbNnU&index=8&list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_
Bartosz hablaba de la definición de producto en la teoría de categorías:
Sea $c',c, a, b$ sean objetos de una categoría, y $p, q, p', q', m$ sean flechas, tales que
- $p: c \rightarrow a$
- $q: c \rightarrow b$
- $p': c' \rightarrow a$
- $q': c' \rightarrow b$
- $m$ es la única flecha desde $c'$ a $c$
A continuación puso un ejemplo en programación informática (donde los objetos son tipos):
- $c$ es
(Int, Bool)
- $c'$ es
(Int, Int, Bool)
- $m$ es una función que toma los elementos 1 y 3 de la tupla y devuelve una nueva tupla con ellos
- $p$ es una función que devuelve el primer elemento de la tupla (un
Int
). - $q$ es una función que devuelve el segundo elemento de la tupla (a
Bool
). - $p'$ es una función que devuelve el primer elemento de la tupla (un
Int
). - $q'$ es una función que devuelve el tercer elemento de la tupla (a
Bool
).
A continuación dijo que $c$ es "mejor" que $c'$ debido al paso adicional $m$ . Estoy pensando, ¿y si también hay un $m': c \rightarrow c'$ ? Se puede imaginar fácilmente una función que tome un (Int, Bool)
a (Int, Int, Bool)
Para un ejemplo trivial, basta con poner un 0 en medio. ¿Podría alguien ayudarme a entender esto?