Juliaの翻訳サイトに参加している内田です。
今回は、マニュアルの中で意味をとるのが難しかった箇所について書こうと思います。
英語版が
(https://docs.julialang.org/en/stable/)
で日本語版が
(https://hshindo.github.io/julia-doc-ja-v0.6/)
なので、読み比べるといいかもしれません。
2箇所は僕の担当外なので誤訳の指摘のようなもので、性格が悪い気もしますけど、
僕も長考の末の解釈なので、読んでもらえたらなあと思います。
1. "整数と浮動小数点数"(Integers and Floating-Point Numbers)の2段落目の
Julia provides a broad range of primitive numeric types, and a full complement of arithmetic and bitwise operators as well as standard mathematical functions are defined over them.
という一文です。意味の取りにくかったのは、"complement"という言葉です。
「補集合」とか「2の補数」という意味もあるので、そういう意味かとも思ったのですが、"full complement"という使い方で、「全体」という意味になるようです。
ほかにも"primitive numeric types"(原始的数値型)に対して使われる"broad"(幅広い)という言葉は、"いろんなビット数の"というニュアンスがあるような気がします。しかし、符号の有無や、整数・浮動小数点数をひっくるめて"様々な"くらいに訳していいような気がします。
文全体を訳してみると、
Juliaには様々な原始数値型がありますが、それぞれに対して、算術演算子やビット演算子、さらに標準的な数学関数がすべて定義されています。
といった感じになると思います。
さらに段落を続けると
それぞれの数値型に対応する演算子や関数がネイティブにコンパイルさて計算資源を最大限に活用できる一方、任意精度の数値型は利用できるものの、ハードウェア上効率的に処理できるわけではないので、演算は遅いです。
というように話が展開されていて、Juliaの演算がどうして速いのかという説明になっています。
2."Variables"(変数)の2段落目の一文で
Julia provides an extremely flexible system for naming variables. Variable names are case-sensitive, and have no semantic meaning (that is, the language will not treat variables differently based on their names).
です。
とりあえず訳してみると
Juliaでは非常に柔軟に変数に名前をつけることができます。変数名では、大文字と小文字は区別されますが、意味論的に無意味です。(つまり、この言語では、名前によって変数の扱い方が変わることはありません)
といったところでしょうか。「意味論的に無意味です。」という言葉の意味がなかなかわからなかったのですが、ヒントがこの章の最後の段落"Stylistic Conventions"(表記上の慣習)にありました。
While Julia imposes few restrictions on valid names, it has become useful to adopt the following conventions:
Juliaでは命名法にほとんど制限はありませんが、以下のような慣習に従ったほうがいいでしょう。
という、一文に続いて「変数名は小文字で表記する」とか「型やモジュールは大文字で始めて単語の区切りにキャメルケースを使う」といったことが書いています。
「意味論的に無意味です。」という言葉はこうした大文字・小文字の使い方は慣習であって制約ではないということを意味しているようです。Juliaでは識別子にUnicodeの各種の文字を使用できて、日本語をはじめ、大文字小文字のない文字もたくさんあるので、制約にすると、非常に不自由になるからだと思います。
3."Control Flow"(制御構造)の"Repeated Evaluation: Loops"(繰り返し処理:ループ)の最後のほうの一文
Multiple nested for loops can be combined into a single outer loop, forming the cartesian product of its iterables:
多重にネストしたforループは、結合して、イテラブルの直積に対する、一重の外側のループ にすることができます。
始めはこう訳したんですが、「一重の外側のループ」ってなんなんだ、気づくと意味がわからなくなりました。結局、訳注にも書いたんですが、「外側のループ」を「外側からのループ」と書き換えて、直積の右側を外側、左側を内側にみたてて、ループのカウンタの増え方が、外側から増えることを表しているんだと解釈しました。
以上、どうでしょうか。僕なりに悩んだ結果の解釈ですが、別の解釈があれば、コメントをお願いします。