[#49868] Rubyへの要望(願望) — MASAKI Yuhsuke <reasonset@...>

Ruby list=E3=81=AE=E7=9A=86=E6=A7=98=E3=80=81=E3=81=AF=E3=81=98=E3=82=81=E3=

14 messages 2014/07/12

[#49877] Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...>

44GT44KT44Gr44Gh44Gv44CCRGljZeOBp+OBmeOAgg0KDQpSdWJ544Oq44OV44Kh44Os44Oz44K5

21 messages 2014/07/13
[#49879] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/13

西山和広です。

[#49890] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/23

6KW/5bGx5ZKM5bqD44GV44KTDQoNCkRpY2XjgafjgZnjgIINCuOBmeOBv+OBvuOBm+OCk+OAgeOD

[#49891] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/24

西山和広です。

[#49893] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/25

RGljZeOBp+OBmeOAgg0KDQo+IENobUZveCDjgafjgoLjgYbjgaHjgofjgaPjgajplrLopqfjgZfj

[#49894] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/26

RGljZeOBp+OBmeOAgg0KDQrvvJ7opb/lsbHlkozluoPjgZXjgpMNCuWFiOaXpeOBlOWgseWRiuOB

[#49895] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/26

西山和広です。

[#49897] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/27

西山和広です。

[#49899] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/31

RGljZeOBp+OBmeOAgg0K44GZ44G/44G+44Gb44KT44CB6L+U5L+h44GM6YGF44GP44Gq44KK44G+

[#49906] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/08/10

RGljZeOBp+OBmeOAgg0KDQrjgYLjga7lvozjgYTjgo3jgYTjgo3oqabjgZfjgabjgb/jgZ/jga7j

[#49907] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/08/11

西山和広です。

[#49909] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/08/11

RGljZeOBp+OBmeOAgg0KDQo+IENobUZveCDjgpLlhaXjgozjgabjgb/jgovjga7jga/jgZ3jgpPj

[#49919] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/08/17

RGljZeOBp+OBmeOAgg0KDQrlhYjpgLHjgYroqbHjgZfjgZfjgabjgYTjgZ8NCuOAjG5vZGUtd2Vi

[ruby-list:49874] Re: Rubyへの要望(願望)

From: Nobuyoshi Nakada <nobu@...>
Date: 2014-07-12 13:26:53 UTC
List: ruby-list #49874
(2014/07/12 21:22), MASAKI Yuhsuke wrote:
> Hi Yukihiro Matsumoto <matz@ruby.or.jp>, this is MASAKI Yuhsuke<reasonset@yahoo.co.jp>.
> I reply for your mail on Sat, 12 Jul 2014 15:20:37 +0900.
>> continue節はPythonにあるものと同じものを期待してらっしゃるの
>> でしょうか。面白いアイディアだと思って昔から考えているのです
>> が、難点はRubyの場合、ループなどはブロックを使うことを推奨し
>> ており、continue節の導入が正当に意味づけしづらいところです。
>> 同様の理由で3 part forも賛成しにくいです。むしろもっとブロッ
>> クを使って欲しいところです。
>>
> whileを使うことはほとんどないのですが、可能であればむしろブロックにcontinue節が欲しいくらいです。
> something do
>   # main
> continue
>   # continue
> end
> さらにいえばこれをやるならば、ブロックにrescueやensureやelseをつけられるようにしてほしいとも思います。

「ブロックにrescueやensureやelse」という提案もすでにありますが、
do...end の場合はともかく {...} では見た目上違和感が大きいという問題も
あります。

> 優先度のアクセサは
> String.encoding_priority
> String.encoding_priority=
> とか。そして、その機能がつけばguessを入れ替えるか、もしくは
> String#full_guess
> とか。さらには#force_encodeを使いたいのですが、これも名前問題がありそうなので、
> String#auto_convert(encode)
> でしょうか。

試しにgemとして実装してみてはどうでしょうか。

> 実際に遭遇したケースとしては、文字列のエスケープ処理と、文字列のエスケープ処理通過指示(verb)で、
> 通常のメソッドの形でなくsymbolを使うことでスッキリみせたい、というのがありました。
> つまり、
> ^ "Hello"
> のように書きたかったのですが、^インスタンスメソッドを定義した上でinstance_evalを呼んでもself.^を読んでくれないため、そうなりません。
> 記号が残っていない、というのは感じますが、DSLではもうちょっと書き方に自由度が欲しいな、と思うことがちょくちょくあります。
> Ruby組み込みでない(DSL処理スクリプトが処理前に展開する)マクロを書いてしまえばいいのかな、
> とは思いますけれど、それもなんだか嬉しくない気がして。

^は単項演算子にはないのでできませんが、+や~、!、~ならStringのメソッドを
refinementsで上書きすることはできます。

>> |# Kernel.syscallにStringを渡せるようにしてほしい
>> 「まんま」といわれてもちょっとわからないのですが、syscallでシ
>> ステムコールの指定を番号ではなく文字列で指定したいということ
>> でしょうか。
>>
> これも、mkfifoを楽にするために欲しいな、と思ったことですね。おっしゃるとおり、システムコール名で指定したいのです。
> 他のプラットフォームについて充分に調べられなかったため、syscallを数値で指定すると移植性に影響がでそうだ、と思いまして。

mkfifoだけでしたら、ずばりmkfifoというgemもあるようです。

>> |# next/redo/breakのターゲットを明示できるようにする
>> ちょっとよくわかりませんでした。
>>
> 次のようなケースです。

Javaのラベルと同じようなものですよね。
記法についてなにかアイディアがありますでしょうか。

> Kernel.`って文字列しかとりませんよね?argをArrayで渡したいということなのですが…
> 名称は、ベタにKernel.cmdか、あるいは分かりにくいですけど、Kernel.csubとか?

とりあえず IO.popen(cmd, &:read) ではどうでしょうか。
ちなみにIO.popenのデフォルトのモードは読み込み専用です。

> では、パーサが大変になりそうですが、
> obj ->method(arg)

->はlambdaで使用されています。

> かぶりをさけるなら
> obj <-method(arg)
> のほうがマシでしょうか。

それは obj < -method(arg) という比較式と解釈されているので、互換性の問
題があります。

> #Object.remove_module
> prependがあるのならば、モジュールを外すことができれば、一時的にメソッドを書き換えるようなことは
> スマートかつ容易に行えるように思えます。

refinementsはどうでしょうか。
-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread