IT翻訳者の疑問

この業界に入って約20年。私の疑問は相変わらず解決しません。

関数のreturn valueは「戻される値」か?

関数のreturn valueは、Microsoftの「ランゲージ ポータル」(https://www.microsoft.com/ja-jp/language/)では「A single value that is the result of the execution of a statement, method, or function.」と定義されていて、日本語訳は「戻り値」となっています。私のふだんの仕事でも、この訳を使っています。

しかし、return a valueの訳し方になるとばらつきがあるようです。同じくMicrosoftの「ランゲージ ポータル」で検索してみました。

The method must return a value.
メソッドは値を返さなければなりません。

A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.
宣言された型が 'void' でも 'any' でもない関数は、値を戻すか、1 つの 'throw' ステートメントを含んでいる必要があります。

In Visual Basic .NET, Return is used to exit a subroutine and to return a value in a function. GoSub...Return is not supported.
Visual Basic .NET では、Return はサブルーチンを終了する場合、および関数に値を返す場合に使用されます。GoSub...Return はサポートされていません。

「返す」が多いのですが、「戻す」もちらほらあるようです。「return a value in a function」の訳が「関数に値を返します」なのは理解不能ですが。

Oracleではどうやら「戻す」で統一しているらしく、

https://docs.oracle.com/cd/F10533_01/TTSQL/function.htm#CACFCGCD というページには次のような記述があります。

関数は、データを操作し、結果を戻します。この章には、すべての関数のアルファベット順のリストに加え、次の関数の概要も含まれています。

数値ファンクションは入力として数値を受け取り、結果として数値を戻します。数値関数は、次のとおりです。 

 英語版はこちらかと思います。

https://docs.oracle.com/database/timesten-18.1/TTSQL/function.htm#TTSQL446

Functions manipulate data and return a result. In addition to an alphabetical listing of all functions, this chapter contains an overview of functions including:

Numeric functions accept numeric input and return numeric values. The numeric functions are:

 「戻す」という表現は「元に戻す」ことを指しているので、こういう文脈で使われているのを見ると違和感があります。「数値を戻します」には、変更された数値を何らかの理由で以前の値に戻すというイメージがあります。

これは「戻り値」に合わせてreturnの訳を「戻す」に統一した結果かなと想像しているのですが、return a valueのreturnが他動詞であるのに対して、「戻り値」の「戻る」は自動詞ですよね。関数の最後にあるreturn文で制御が呼び出し元に戻るときに渡される値がreturn valueではありませんか? Google検索で「関数 return文」を検索すると、翻訳ものではないサイトが多数ヒットしますが、これを見る限りでは、日本語で文章を書くときは「関数から値を返す」、「戻り値を返す」といった表現のほうが自然だと思います。