New implementation

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating resource.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
using System;
using System.Threading.Tasks;
Task.Delay(TimeSpan.FromSeconds(30))
    .ContinueWith(_ => f(42));
import "time"
timer := time.AfterFunc(
	30*time.Second,
	func() {
		f(42)
	})
import "time"
go func() {
	time.Sleep(30 * time.Second)
	f(42)
}()
let id = setTimeout(f, 30000, 42);
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.schedule(() -> _f(42), delayInSeconds, TimeUnit.SECONDS);
sleep(30);
f(42);
local $SIG{ALRM} = sub { f(42) };
alarm 30;
import threading
timer = threading.Timer(30.0, f, args=(42,) ) 
timer.start() 
Thread.new do
  sleep 30
  f(42)
end
use std::time::Duration;
use std::thread::sleep;
sleep(Duration::new(30, 0));
f(42);