Обычно мы используем шаблон builder в java, например:
UserBuilder userBuilder = new UserBuilder();
User John = userBuiler.setName("John")
.setPassword("1234")
.isVip(true)
.visableByPublic(false)
.build();
Некоторые атрибуты имеют значение по умолчанию, а некоторые - нет.
Передача атрибутов на карте может быть решением, но это делает аргумент более длинным:
(def john (make-user {:name "John" :pass "1234" :vip true :visible false}))
Итак, мой вопрос: есть ли элегантный способ достичь этого?