Esta semana terminé de leer El hombre duplicado de Saramago. No sé como describir la cosa, si decir si me gustó o no. Puedo decir que en su mayoría me gustó. Ahora recuerdo que la película Enemy, dirigida por Denis Villeneueve, es basada ligeramente en este libro, aunque creo con un distinto desenlace y enfoque. Ahora voy a empezar Sunset Park de Paul Auster.
También terminé el libro sobre shapeless que estaba leyendo. Puntos positivos: se enfoca en como usar la librería para hacer cosas útiles y la hace menos intimidante. El único punto negativo que le encuentro es que no tiene ejercicios que le permitan a uno validar si de verdad está entendiendo las cosas.
Un detalle curioso: hablan del “patrón lema” que no es otra cosa que reusar operaciones ya existentes para implementar nuevas. El nombre del patrón se origina en las matemáticas: un lema se da cuando para demostrar ciertos teoremas se usan otros teoremas. Estos teoremas, que en el contexto de una demostración ayudan a demostrar otro teorema se denominan lemas. Reusar este término tiene una apariencia pedante para algo que como programadores hacemos en cada momento: invocar otras funciones para implementar otras funciones. Pero aquí el reuso tiene un significado distinto por que los “ops” corresponden a afirmaciones sobre los tipos. El ejemplo que ponen en el libro es el de implementar un “op” para extraer el penúltimo valor de un HList
, reusando un “op” para sacar el segmento inicial de un HList
y otro para sacar el último valor. En codigo:
import shapeless.ops.hlist
implicit def hlistPenultimate[L <: HList, M <: HList, O](
implicit
: hlist.Init.Aux[L, M],
init: hlist.Last.Aux[M, O]
last): Penultimate.Aux[L, O] =
new Penultimate[L] {
type Out = O
def apply(l: L): O =
.apply(init.apply(l))
last
}
En este contexto el “lema” es la existencia de un Init
y un Last
y el “teorema” es la existencia de un Penultimate
.
Por otra parte usé Elm para graficar el problema del día 8 de Advent Of Code:
Ví Denial sobre el juicio por difamación de David Irving, un negacionista del holocausto. El título tiene multiples connotaciones. Por una parte está la obvia sobre los negacionistas del holocausto. Pero también hay otras instancias: la del racista que jura no serlo y la de la historiadora, Deborah Lipstadt, que decide negarse su derecho a expresarse para que los abogados puedan hacer su trabajo. Me quedo con la escena en la que conversan esto último.
Este Domingo no salí en bici con mis amigos. Uno de ellos no iba a poder ir entonces creo que esto nos sirvió de excusa a los demás para no salir. Con sinceridad fue más pereza que otra cosa.