July 2018
Intermediate to advanced
242 pages
8h 6m
English
class Memoizer<P, R> private constructor() { private val map = ConcurrentHashMap<P, R>() private fun doMemoize(function: (P) -> R): (P) -> R = { param: P -> map.computeIfAbsent(param) { param: P -> function(param) } } companion object { fun <T, U> memoize(function: (T) -> U): (T) -> U = Memoizer<T, U>().doMemoize(function) }}
fun <P, R> ((P) -> R).memoized(): (P) -> R = Memoizer.memoize<P, R>(this)
Read now
Unlock full access