What is the benefit of functions in blueprints?

Hey guys! this is a pretty straightforward question on functions. I am self taught, so there are is still many things I am unsure of, so this may be common knowledge to most of you. The context of this question = I have a chunk of blueprint on my character whose purpose is to determine which directional buttons the player is pressing. I had seen a function before end decided to try to clean up my blueprint by sectioning this part of my blueprint into a function to output the direction. The reason I am doing this is I assume that the goal of a function is to streamline the blueprint, and make it easy to call upon an output when needed without having to copy the whole chunk, or make long annoying connections throughout. Am I correct in thinking this? Also, is there a drawback, like having too many being heavy, is there a better use for functions? Any info is appreciated, knowledge is power!

Thanks in advance!

Thank you very much! Very informative and i appreciate the response. I had done a google search before asking and never came upon this very obvious answer, so I apologise if I wasted time, but thank you!

glad to help, weve all been there at some point