Для базового понимания достаточно знаний первого класса, но чтобы не показывать на совсем примитивном примере, возьмём пример из начальной школы

Что значит «возвращает» в программировании?

Вот у вас такой код:

a = 0

x = cos(a) + 2 * 3

Как компьютер будет с ним работать? Давайте возьмём упрощённую модель(без АСД) — будет работать так же, как мы в школе. Сначала он посчитает косинус, но он не сможет это сделать, пока не заменит a на 0. Так что он заменит и получит.

x = cos(0) + 2 * 3

После этого он подсчитает косинус нуля и получит 1. Он подставит вместо cos(0) в итоге 1, получится

x = 1 + 2 * 3

Теперь умножение. Умножаем 2 на 3, получаем 6. Заменяем 2*3 на 6:

x = 1 + 6

Ну и осталось вместо 1 + 6 подставить 7, получится

x = 7


Всё, на этом работу со строкой кода заканчиваем. И вот когда компьютер посчитал результат какой-то операции, функции вроде косинуса или оператора вроде +, то он этот результат как бы «подставляет» вместо этой операции и данных операции. Это и называется «возвращает» — операция «+» закончилась, в результате получилось 7, теперь мы можем это число подставить вместо операции и её данных, 7 вместо 1 + 6. Правильнее, кстати, говорить передаёт — 1 + 6 передаёт обратно 7. Но все уже настолько часто говорят «возвращает», что оно укоренилось. Но это тоже уже ненужное поначалу углубление.

P.S. Это всё, конечно, модель из области «корень из минус 1 не существует», очень упрощённая и на самом деле всё гораздо глубже и сложнее — но именно новичкам очень полезно эту модель освоить. А я преподаю новичкам, часто вообще школьникам, когда доходят до определённого уровня, обычно отправляю их учиться у других. Да и многие профессионалы не знают про абстрактное синтаксическое дерево, как оказалось. Оно нужно прежде всего тем, кто компиляторы да интерпретаторы создаёт.