Preguntas etiquetadas con zipper

7
Forma más limpia de actualizar estructuras anidadas
Digamos que tengo los siguientes dos case classes: case class Address(street: String, city: String, state: String, zipCode: Int) case class Person(firstName: String, lastName: String, address: Address) y la siguiente instancia de Personclase: val raj = Person("Raj", "Shekhar", Address("M Gandhi Marg", "Mumbai", "Maharashtra", 411342)) Ahora si quiero actualizar zipCodede rajentonces tendré …
124 scala  case-class  zipper 

1
Entender por qué Zipper es un Comonad
Este es un seguimiento de la respuesta a mi pregunta anterior. Supongamos que necesito asignar cada elemento a:Ade List[A]a b:Bcon función def f(a:A, leftNeighbors:List[A]): By generar List[B]. Obviamente, no puedo simplemente llamar mapa la lista, pero puedo usar la cremallera de la lista . La cremallera es un cursor para …

3
Comonads de cremallera, genéricamente
Dado cualquier tipo de contenedor, podemos formar el Zipper (centrado en elementos) y saber que esta estructura es un Comonad. Esto se exploró recientemente con maravilloso detalle en otra pregunta de Stack Overflow para el siguiente tipo: data Bin a = Branch (Bin a) a (Bin a) | Leaf a …
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.