main difference
store procedure's can not used as inline Query
while function is used for inline query
eg.
select (exec sp_abc 'a1','a2') as a,* from tbl_abc
select fn_concat(a1, a2) as a,* from tbl_abc
another important things are,
* Function have limited error handling then Store-procedures
* Function can not use temporary tables
* Function can not call SP, but in sp you can call function using select statement
Happy Coding!
:)