ты из функции delay возвращаешь вызов setTimeout вместо функции, которая должна принимать текст, а setTimeout твоей функции f не передает никаких параметров поэтому undefined
да уж. придумал возвращать setTimeout вместо функции и пытался прикрутить замыкание. мдэ. спасибо, дружище !