/**
* This problem was asked by Facebook.
Given a function f, and N return a debounced f of N milliseconds.
That is, as long as the debounced f continues to be invoked, f itself will not be called for N milliseconds.
* */
class Problem_671 {
/*
* parameter 1: function f
* parameter 2: N, milliseconds
* */
fun debounced(f: () -> Unit, N: Int) {
var currentTime = 0L
val startTime = System.currentTimeMillis()
if (currentTime == 0L || (startTime - currentTime) >= N) {
f()
currentTime = System.currentTimeMillis()
}
}
fun functionF() {
println("call me")
}
}