Skip to content

Revise paragraph in "ライフタイムの省略" #144

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 27, 2016

Conversation

niku
Copy link
Contributor

@niku niku commented May 26, 2016

ライフタイムの省略の最初の段落が意味を取りにくかったので相談です.

こんな感じで改善してみようかと思うのですが,いかがでしょうか.
訳にはあまり自信がありません.

もしOKそうなら適用してプルリクエストをちゃんと作ります.


Rust supports powerful local type inference in function bodies, but it's forbidden in item signatures to allow reasoning about the types based on the item signature alone.

Rust は関数本体の部分では強力なローカル型推論をサポートします。しかし要素のシグネチャの部分では、型が要素のシグネチャだけでわかるようにするため,(型推論が)許されていません。

However, for ergonomic reasons a very restricted secondary inference algorithm called “lifetime elision” applies in function signatures.

とはいえ、人間工学的な理由により(訳注:人間が読みやすいように)"ライフタイムの省略"と呼ばれている、非常に制限された第二の推論アルゴリズムはシグネチャの部分に適用されます。

It infers only based on the signature components themselves and not based on the body of the function, only infers lifetime parameters, and does this with only three easily memorizable and unambiguous rules.

その推論はシグネチャのコンポーネントだけに基づき、関数本体には基づかず、ライフタイムパラメータだけを推論します。そしてたった3つの覚えやすく明確なルールに従って行います。

This makes lifetime elision a shorthand for writing an item signature, while not hiding away the actual types involved as full local inference would if applied to it.

ライフタイムの省略で要素のシグネチャを短く書くことができます。しかしローカル型推論が適用されるときのように実際の型を隠すことはできません。

@KeenS
Copy link
Member

KeenS commented May 26, 2016

一応レビューでも議論のあった所ですね。
#64 (comment)

改善した方が読み易いのでプルリクお願いします。

一点だけ、

(訳注:人間が読みやすいように)

はやや怪しいかもしれません。書き手に対してパラメータを省略出来るようにする意味もあると思うので合ってるか自身ないです。

あとは細かい点ですが

第二の推論アルゴリズムはシグネチャの部分に適用されます。

「第二の推論アルゴリズム"が"シグネチャの部分に適用されます。」ですかね。

@tatsuya6502
Copy link
Member

(訳注:人間が読みやすいように)

はやや怪しいかもしれません。書き手に対してパラメータを省略出来るようにする意味もあると思うので合ってるか自身ないです。

そうですね。「読みやすさ」というよりも、省略できることによる「使いやすさ」という意味が強いと思います。この単語は Rust のコアチームメンバーが好んで使っていて、コンパイラの振る舞いやライブラリの API を決めるための議論でも、必ずといっていいほど出てきます。いずれの場合も、使いやすいか?気が利いてるか?という意味で使われているようです。

「人間工学的」と訳すと伝わらないと思ったので、エラーハンドリングの章の冒頭では、以下のように、カタカナ表記+カッコで説明としました。

この章では、エラーを処理する上でどのような課題があるかを吟味し、標準ライブラリを使うと、それがいかにシンプルでエルゴノミック(人間にとって扱いやすいもの)に変わるのかを紹介します。

@niku
Copy link
Contributor Author

niku commented May 27, 2016

コメントありがとうございます.

「第二の推論アルゴリズム"が"シグネチャの部分に適用されます。」ですかね。

「が」にしました.

ergonomic
カタカナ表記+カッコ

「エルゴノミック(人間にとっての扱いやすさ)」にしました.

@niku niku changed the title [WIP] Revise paragraph in "ライフタイムの省略" Revise paragraph in "ライフタイムの省略" May 27, 2016
@KeenS
Copy link
Member

KeenS commented May 27, 2016

ありがとうございます。マージします。

@KeenS KeenS merged commit bb2ca6d into rust-lang-ja:master May 27, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants