- プログラミング言語 Rust
578 :デフォルトの名無しさん[sage]:2016/04/26(火) 14:06:23.04 ID:XWVUSc0/ - >>577 ";"を付けて、この式の値は使わない(unit型)だとプログラマが明示してやると色々便利だから。
";"の有無でその式の値を返す(使う)かどうかをreturnを使わずに指定できる。 もしreturn文が必須ということになると、{}で一連の処理をブロック化して書くときにも"return 値"が必須になって、エラーのため大域脱出したいときに困る。 というのが建前。Algol系列で演算子のユーザー定義ができない文法だから、省略してもいいような箇所、例えばlet文の末尾とかあるとは思う。 元々OCamlで開発されてたせいで、MLの香りが随所に残っているという歴史的経緯と、 構文解析しやすいっていう本音と、先々の拡張に今のコードが耐えうる形にしたいのでは、という推測がある。
| - プログラミング言語 Rust
582 :デフォルトの名無しさん[sage]:2016/04/26(火) 23:29:34.25 ID:XWVUSc0/ - 1. Rust
2. Ruby 3. OCaml Rustは型注釈もML系からもっと輸入すべきだったと思う。 fn foo<T, U>(x: T) -> U より、fn foo: 'T -> 'Uとか fn foo:: T, U => T->Uとかの方が見やすい。 lifetime parameterをどう書くかを考慮する必要はあるけど、 型注釈と変数が一緒になってるより良いと思う。
|
|