Statistical Learning For Functional Data