language programming functional implementation