Slide 19
Slide 19 text
࡞ͨ͠-FOTͷར༻
data class User(val id: Int, val profile: Profile)
data class Profile(val name: String, val statusMessage: StatusMessage)
data class StatusMessage(val text: String, val updatedTime: Long)
fun createStatusMessageTextLens(): Lens {
val profileLens = Lens(
getter = { source
->
source.profile },
setter = { source, map
->
source.copy(profile = map(source.profile)) }
)
val statusMessageLens = Lens(
getter = { source
->
source.statusMessage },
setter = { source, map
->
source.copy(statusMessage = map(source.statusMessage)) }
)
val textLens = Lens(
getter = { source
->
source.text },
setter = { source, map
->
source.copy(text = map(source.text)) }
)
return profileLens + statusMessageLens + textLens
}