Влад Конвой Все просто. Из курса Computer science. Рекомендую почитать SICP!!!
В математике На вопрос "Как это выглядит?" отвечает "функция". А на вопрос "Как же это получить?" отвечает "процедура".
В С-подобных языках именованные вычисления оформляются в виде функций. Но функции в С-подобных языках отвечают на оба вопроса и нет ни одного способа разграничить. Функция в С-подобных всегда должна что-то вернуть! Какой-то результат! Какой-то новый объект. Но что-то новая вернуть по-любому должна!
Теперь, а как же быть если хочется хоть как-то разграничить на функции и процедуры? Вот для этого есть "костыль" в виде 'void'! Другими словами это способ сказать читающему код: "мы ничего не возвращаем, мы только создаем". Это и есть "как это получить?" в таких функциях только производство чего-то нового. Нарисовать окно, зашифровать диск, послать другу .... А в в функциях возвращающих результат можно уже написать в терминах математики, то есть как что выглядит, но ни как что получается ;)