One issue that jumps out right away is that you are not binding the expression:
final_list ++ [head]
to any variable (in order to capture the new value).
One issue that jumps out right away is that you are not binding the expression:
final_list ++ [head]
to any variable (in order to capture the new value).