Functional specifications are not technical specifications. Seems people get these two confused as being one and the same. While I am not aware of any universally textbook definitions for the two I hold the following to be true;
1. A functional specification describes how a product will work entirely from the user’s perspective. It doesn’t care how the thing is implemented. It talks about features. It specifies screens, menus, dialogs, and so on.
2. A technical specification describes the internal implementation of the program. It talks about data structures, relational database models, choice of programming languages and tools, algorithms, etc.