Topic functional programming