dnowak
12/21/2021, 3:38 PMdnowak
12/21/2021, 3:40 PMval renderSmsTemplate: RenderSmsTemplate = ::renderTemplate.curried()(
generateCommandId
)(
generateMessageId
)(
getNow
)(
TopicName(TEMPLATE_COMMANDS_TOPIC)
)(
TemplateId(templateId)
)
val sendSms: SendSms = ::sendSms
.partially1(generateCommandId)
.partially1(generateMessageId)
.partially1(getNow)
.partially1(TopicName(SMS_COMMANDS_TOPIC))
dnowak
12/21/2021, 3:42 PMdnowak
12/21/2021, 3:43 PM::sendSms.partially(generateCommandId, generateMessageId, getNow, TopicName(xx))
Peter
12/21/2021, 3:46 PMdnowak
12/21/2021, 3:47 PMHieiJ
12/21/2021, 4:21 PM(::sendSms)(generateCommandId, generateMessageId, getNow, TopicName(xx))
but maybe the most idiomatic way to do it in kotlin (one that every kotlin dev can understand immediately) is just
{ sendSms(generateCommandId, generateMessageId, getNow, TopicName(xx)), it) }
HieiJ
12/21/2021, 4:22 PM{ templateId -> sendSms(generateCommandId, generateMessageId, getNow, TopicName(xx)), templateId) }
Youssef Shoaib [MOD]
12/22/2021, 12:05 AMYoussef Shoaib [MOD]
12/22/2021, 12:07 AMinvoke
that returns ethe appropriate function, but this'll potentially need a huge amount of definitionsPatrick Louis
12/22/2021, 5:24 AMuncurry4
function to partially apply the first 4 parameters in a single call.
fun <A,B,C,D,R> ((A)->(B)->(C)->(D)->R).uncurry4(): (A,B,C,D)->R =
{ a: A, b:B, c:C, d:D ->
this(a)(b)(c)(d)
}
dnowak
12/22/2021, 9:28 AMpartially
function that would apply n
first arguments for all arities (1 - 22). But that means 253 * 2 functions (regular & suspend). I’m not sure if IDEA would be happy with that 🙂.dnowak
12/22/2021, 9:29 AM