As the students are total beginners untouched by programming concepts, I need to be very careful and thorough when explaining abstract things such as treating functions as values. Thus I am searching for a good real-world analogy for higher order functions. The best ideas I had so far feel very artificial to me. For example
A hot dog stand is like a function. You put you order in as input and you get your hot dog out as output. If the hot dog stand would be a higher order function, you would come with your own toaster and hand it to the serving person saying: "Hey, use this toaster to toast the bun!". The toaster is also like a function. So you are handing a function (toaster) as an input to another function (hot dog stand).
Let's by honest. When did you last went for a hot dog with your own toaster in hand? Does anyone have a better analogy which would feel more real and be illustrative at the same time?