From bc67e1ead93a0a92f8b01ec283e65fbefce456d3 Mon Sep 17 00:00:00 2001 From: Benedikt Schwab Date: Mon, 9 May 2022 14:24:14 +0200 Subject: [PATCH 1/2] Fix traversal code samples --- arrow-site/docs/docs/traversal/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arrow-site/docs/docs/traversal/README.md b/arrow-site/docs/docs/traversal/README.md index 7bcde8a5d1b..e47af3c6667 100644 --- a/arrow-site/docs/docs/traversal/README.md +++ b/arrow-site/docs/docs/traversal/README.md @@ -45,8 +45,8 @@ data class Employees(val employees: List) ``` ```kotlin val john = Employee("John Doe", Company("Arrow", Address("Functional city", Street(23, "lambda street")))) -val jane = Employee("John Doe", Company("Arrow", Address("Functional city", Street(23, "lambda street")))) -val employees = Employees(listOf(john, jane)) +val jane = Employee("Jane Doe", Company("Arrow", Address("Functional city", Street(23, "lambda street")))) +val employeeData = Employees(listOf(john, jane)) ``` Without lenses, we could use the `copy` method provided on a `data class` for dealing with immutable structures. @@ -72,8 +72,8 @@ What we actually wanted to do here is the following: focus into _every_ employee ```kotlin val employees: Lens> = Lens( - get = { it.company }, - set = { employee, company -> employee.copy(company = company) } + get = { it.employees }, + set = { employee, employees -> employee.copy(employees = employees) } ) val everyEmployee = Traversal.list() @@ -88,7 +88,7 @@ val companyAddress: Lens = Lens( set = { company, address -> company.copy(address = address) } ) -val addressStrees: Lens = Lens( +val addressStreet: Lens = Lens( get = { it.street }, set = { address, street -> address.copy(street = street) } ) @@ -98,9 +98,9 @@ val streetName: Lens = Lens( set = { street, name -> street.copy(name = name) } ) -val employeesStreetName: Lens = employees compose everyEmployee compose employeeCompany compose companyAddress compose addressStrees compose streetName +val employeesStreetName: PTraversal = employees compose everyEmployee compose employeeCompany compose companyAddress compose addressStreet compose streetName -employeesStreetName.modify(employee, String::capitalize) +employeesStreetName.modify(employeeData, String::capitalize) ``` ## Composition From 55941f524f38119fec9c778b09f232a89eccb4c4 Mon Sep 17 00:00:00 2001 From: Benedikt Schwab Date: Mon, 16 May 2022 14:54:06 +0200 Subject: [PATCH 2/2] Add suggestion Co-authored-by: Simon Vergauwen --- arrow-site/docs/docs/traversal/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arrow-site/docs/docs/traversal/README.md b/arrow-site/docs/docs/traversal/README.md index e47af3c6667..0c3d9cc2483 100644 --- a/arrow-site/docs/docs/traversal/README.md +++ b/arrow-site/docs/docs/traversal/README.md @@ -98,7 +98,7 @@ val streetName: Lens = Lens( set = { street, name -> street.copy(name = name) } ) -val employeesStreetName: PTraversal = employees compose everyEmployee compose employeeCompany compose companyAddress compose addressStreet compose streetName +val employeesStreetName: Traversal = employees compose everyEmployee compose employeeCompany compose companyAddress compose addressStreet compose streetName employeesStreetName.modify(employeeData, String::capitalize) ```