(Programming:)

A function is said to return its value. In a useful play on words, a function or procedure also returns control flow to its caller when done executing. This is the basis for...

(C and its ilk, Lisp and Perl, ...:)

The keyword return is used to return control flow from a procedure or function to its caller. For a procedure, the form "return;" (or the corresponding "(return)" for Lisps) is used, as there is no return value. For a function, the form "return value;" (or the corresponding "(return value...)" Lisp) is used.

Structured programming zealots note that return is an unstructured exit: there are potentially multiple returns, but only one entry point. For a procedure, there is always an alternate way to return control: just "fall off the end" of the procedure. Lisp and Perl extend this notion to functions, which are considered to return the last value computed before falling off. In C and its descendants, however, this is not allowed; a function must perform return value;, or the nasal daemons fly.

(BASIC:)

Everybody's favourite juvenile delinquent programming language used this keyword to return from a subroutine. GOSUB would push the current line number onto the stack and transfer to another line number; RETURN would pop that number off the stack and continue execution at the following line.

This style of programming subroutines is much closer to (old!) Fortran (or even assembler) than to the so-called "structured programming languages": a subroutine may have multiple exits (and multiple entry points). This was enough to throw Djikstra into a conniption fit, but could also be very handy and compact.