Мне нужно написать много геттеров и сеттеров для моей модели (это рекорд). Геттеры очень лаконичны, и я доволен этим.
getFoo = .foo
Это идеально подходит для использования в качестве встроенной функции без указания имени:
Maybe.map .foo maybeModel
Только один дополнительный символ (.
) сверх минимально необходимого кода (имя поля). Не могу получить больше без шаблонов.
Но как кратчайшим образом написать эквивалентный сеттер? Теперь я делаю
Maybe.map2 (\x v -> {x | foo = v} ) maybeModel maybeValue
Теперь это больше не «бессмысленно», и вокруг foo
много шаблонов, большинство из которых трудно набирать специальные символы.
Для пояснения, есть связанный поток о том, как избавиться от необходимости писать отдельный геттер для каждого поля. Я в порядке с этим, но я просто хочу, чтобы это было легче для пальцев и глаз.