Project

General

Profile

Actions

Feature #17598

open

直後の改行を無視する命令(......)

Added by Anonymous 8 months ago. Updated 8 months ago.

Status:
Feedback
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-dev:51002]

Description

改行を無視する命令、今 \(\n) となっている命令についてです。 ...... を提案します。

(0... ......
5).each ......
.map{_1} ...... # some comments
=> ar
# (0...5).each.map{_1} => ar

(1) 本当は ... が一番良いと思います。しかし Range で使われています。
(2) 一番良いのが使えないなら長くしよう。 ......
(3) 実際に使うのなら .... が妥当?
(4) .......... の両方作っちゃえ。

私は実験的に (2) を希望します。

Updated by nobu (Nobuyoshi Nakada) 8 months ago

  • Description updated (diff)

「命令」というよりは構文要素、トークンだと思います。

Updated by Anonymous 8 months ago

...... は長過ぎると思ったので取り止めます。

(1) --

読みやすく書きやすい。--と手前にスペースを2つが読みやすくてオススメ? (×) Ruby
では使われていないが、デクリメントが使えなくなる。(イテレータ用?)

(2) "\\;"

改行のエスケープと意味が分かりやすい。 "\\\n" と似ている。 (×)
斜めの線が入って読みにくい?単一の記号の連続の方がタイプしやすい?スクリプト言語っぽくない??

(3) .... (4文字ドット)

見た目から意味を推測しやすい。 (×) 4文字は長い。3文字 ... はRange や任意個の引数のようにすでに多くの記号に使われている。

この案の中では (1) が良いと思います。

Updated by sawa (Tsuyoshi Sawada) 8 months ago

提示された例が良くないと思います。例示された例は、 ...... がなくても、そのまま動きます。

Updated by sawa (Tsuyoshi Sawada) 8 months ago

行末の \...... に置き換えて何が良いのでしょうか。私は行末の \ のほうが見やすいと思います。

Updated by hattorihiroaki318 (Hiroaki Hattori) 8 months ago

私の最終提案です。

改行の無視は前の行のインデントより4文字以上深い行でします。
これを避けるには空白文字だけの(コメントもない)空行を2行以上入れます。1行だけだと改行無視をします。

3.times.map{_1}
    => ar  # => [0,1,2]
3.times.map{_1}

    => ar  # => [0,1,2]
3.times.map{_1}


    => ar  # => Error
3.times.map{_1}
      # -- comments --

    => ar  # => [0,1,2]
3.times.map{_1}
      # -- comments --


    => ar  # => Error

Updated by nobu (Nobuyoshi Nakada) 8 months ago

  • Status changed from Open to Feedback

これがあると何がどう嬉しいのでしょうか。
少なくともインデントルールをrubyに導入するのはかなり困難だと思います。慣習的にも実装的にも。

Actions

Also available in: Atom PDF