I found this topic a little confusing especially after googling. There seemed to be many conflicting explanations. Although I could probably still write functional programs without fully understanding this. However I will continue to dig some more to try to better understand.
.