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.name
Imran/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