Estoy buscando un poco de vocabulario aquí. Hay una serie de formas que tienen nombres comunes. Por ejemplo, L a = Empty | Cons a L
se denomina generalmente "lista", mientras que T a = Leaf a | Node (T a) (T a)
es un "árbol binario" y St s a :: St (s->(a,s))
es la forma de la mónada de estado.Nombre del tipo de patrón: R a b = Q (a -> (R a b, b))
me gustaría saber si una forma como esta tiene un nombre:
data R a b = Q (a -> (R a b,b))
que he visto este patrón en los marcos de flecha e implementaciones de la máquina del Estado. La función recursiva hace que se sienta un poco como una Monad de estado o una Monad de Cont. También es la única estructura además de (->)
y (>=>)
para la que he visto una instancia de Arrow definida.
¿Hay un nombre común para esta estructura de datos?
Tienes un bonsái allí :). Un mejor árbol binario es 'T a = Rama (T a) (T a) | Hoja a' – amindfv
@amindfy: Estás en lo correcto. Lo he arreglado Gracias. –
@ JohnF.Miller ¿no le gustaría almacenar un 'a' en algún lugar de' T a'? : D (lo siento ... tuve que ...) (o tal vez es un tipo fantasma !?: p) – Ptival