This is long overdo... Just a short and simple example
of Partial Function Application.
 
For some good explanations, which also include the difference between Currying and Partial Function Application, check out:
http://msmvps.com/blogs/jon_skeet/archive/2012/01/30/currying-vs-partial-function-application.aspx
and also this answer on stackoverflow: http://stackoverflow.com/a/8826698/532517
 
And here is the example, taken from real code:
 
        internal void Addfile(string parentDirName, string fileName, long size)
        {
            AddElement(parentDirName, fileName, (name, parent) => new File(name, size, parent));
        }
 
        public void AddDir(string parentDirName, string dirName)
        {
            AddElement(parentDirName, dirName, (name, parent) => new Directory(dirName, parent));
        }
 
        private void AddElement(string parentDirName, string name,
                                Func<string, FileSystemElement, FileSystemElement> elementCreator)
        {
            ValidateFileNames(parentDirName, name);
            var parent = (Directory)_index[parentDirName];
            FileSystemElement element = elementCreator(name, parent);
            parent._elements.Add(element);
            _index.Add(name, element);
        }