Rachel
02/14/2020, 6:10 PMpaco
02/20/2020, 9:00 AMRachel
02/20/2020, 10:00 AMRachel
02/20/2020, 11:03 AMRachel
02/20/2020, 12:56 PMRachel
02/20/2020, 2:30 PMpakoito
02/20/2020, 6:00 PMpakoito
02/23/2020, 4:21 PMpakoito
02/23/2020, 4:21 PMImran/Malic
03/01/2020, 10:45 PMPhBastiani
03/02/2020, 10:40 AMfun trampolineFibonacci(n: Int): TrampolineF<Int> =
when {
n < 2 -> Trampoline.done(n)
else -> {
TrampolineF.fx {
val x = Trampoline.defer { trampolineFibonacci(n - 1) }.bind()
val y = Trampoline.defer { trampolineFibonacci(n - 2) }.bind()
x + y
}
}
}
Benchmark (Param) Score (ms/op)
arrow.benchmarks.TrampolineBench.eval 30 7933,298
arrow.benchmarks.TrampolineBench.trampoline 30 9285,310
cats.benchmarks.TrampolineBench.eval 30 655,456
cats.benchmarks.TrampolineBench.stdlib (TailCalls) 30 596,109
cats.benchmarks.TrampolineBench.trampoline 30 1567,035
For Cats the Trampoline / Eval ratio is significant. Overall results on the Arrow side do not seem very good 🤔
I didn't do any tests without fx
PhBastiani
03/02/2020, 11:07 AMrcd27
03/09/2020, 9:12 AMSemigroupK
is missing its documentation, not implemented (https://arrow-kt.io/docs/arrow/typeclasses/semigroupk/). Probably (this one)[https://typelevel.org/cats/api/cats/SemigroupK.html] from Cats
is fine.simon.vergauwen
03/23/2020, 8:47 AMRachel
04/02/2020, 7:44 PMSatyam Agarwal
04/04/2020, 11:08 AMSatyam Agarwal
04/05/2020, 12:09 PMraulraja
04/08/2020, 10:01 AMraulraja
04/08/2020, 10:02 AMpakoito
04/10/2020, 3:18 PMpakoito
04/10/2020, 3:18 PMpakoito
04/28/2020, 11:55 PMpakoito
04/29/2020, 10:20 AMpakoito
04/29/2020, 10:20 AMpakoito
04/29/2020, 10:20 AMpakoito
05/02/2020, 8:14 PMpakoito
05/02/2020, 8:15 PMantonicg
05/07/2020, 3:42 PMtoIo()
method from Validated
like there is from Either
, right?antonicg
05/08/2020, 9:04 AMtoEither()
and then toIO()
, but I was asking because, shouldn’t it be one? I am in to contribute if people think that makes sense for the library
Thread in Slack Conversation