Duplicar posible:
What is the difference between a ‘function’ and a ‘procedure’?¿Cuál es la diferencia entre una subrutina y una función?
I búsquedas en línea para una respuesta a esta pregunta, y la respuesta que obtuve fue que una función puede devolver un valor, modificar un valor, etc. , pero una subrutina no puede. Pero no estoy satisfecho con esta explicación y me parece que la diferencia debería ser más que una cuestión de terminología.
Así que estoy buscando una respuesta más conceptual a la pregunta.
No realmente. Esa es la única diferencia importante. Quizás otra cosa es que los lenguajes modernos (C, Java, PHP, etc.) no usan subrutinas sino funciones. De lo contrario, diría que los detalles técnicos son los mismos: la instrucción de ensamblaje 'call' o 'jmp', básicamente. –
Vea también: [¿Qué es una coroutine?] (Http://stackoverflow.com/q/553704/974555), y [¿Cuál es la diferencia entre un método y una función?] (Http://stackoverflow.com/ q/155609/974555) – gerrit