simon.vergauwen
02/28/2019, 8:06 AMImran/Malic
02/28/2019, 8:22 AMkotlin
plugins{
...
id("kotlin")
id("kotlin-kapt")
}
...
dependencies {
...
kapt "io.arrow-kt:arrow-meta:$arrow_version"
implementation "io.arrow-kt:arrow-optics:$arrow_version"
...
}
I am not sure If I have a running kapt plugin. I never worked with it. Did I forget anything?Imran/Malic
02/28/2019, 8:38 AMkotlin
// This compiles
val john = Employee( 
 name = "John Doe", 
 company = Company("Kategory",        Address("Functional city", 
Street(44, "lamda Street"))    ))
val employeeCompany: Lens<Employee, Company>  = arrow.optics.Employee.company
// this not
val employeeStreetName: 
Lens<Employee, String> = arrow.optics.Employee.company.street.nameImran/Malic
02/28/2019, 10:13 AMkotlin
val employeeCompany =    {emp:Employee, f: (Company) -> Company ->        Employee.company.modify(emp, f)    }val companyAddress=    {c:Company, f: (Address) -> Address ->      Company.address.modify(c, f)}val addressStreet=    {ad:Address, f: (Street) -> Street ->        Address.street.modify(ad, f)}val employeeAddress =    {e:Employee, f: (Address) -> Address ->        employeeCompany(e) { c:Company -> companyAddress(c, f)}    }val employeeStreet =    {e:Employee, f: (Street) -> Street ->        employeeAddress(e){ a:Address -> addressStreet(a, f) }    }
Is there a more concise version.Imran/Malic
02/28/2019, 11:43 AMpakoito
02/28/2019, 12:10 PMpakoito
02/28/2019, 12:10 PMraulraja
02/28/2019, 12:10 PMpakoito
02/28/2019, 12:10 PMraulraja
02/28/2019, 12:11 PMraulraja
02/28/2019, 12:11 PMraulraja
02/28/2019, 12:12 PMraulraja
02/28/2019, 12:13 PMraulraja
02/28/2019, 12:13 PMImran/Malic
02/28/2019, 1:04 PM