[#15357] Regexp literal and Regexp.new() — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

14 messages 2001/12/05
[#15358] Regexp in UTF-8 (Re: Regexp literal and Regexp.new()) — TAKAHASHI Masayoshi <maki@...> 2001/12/05

高橋征義です。むーん、問題のありかが違ったかも。

[#15435] Time#utcoff — Tanaka Akira <akr@...17n.org>

In article <hvosnahj702.fsf@coulee.a02.aist.go.jp>,

20 messages 2001/12/13
[#15436] Re: Time#utcoff — matz@... (Yukihiro Matsumoto) 2001/12/14

まつもと ゆきひろです

[#15505] ERb — m_seki@...

74 messages 2001/12/20
[#15560] Re: ERb — Tanaka Akira <akr@...17n.org> 2001/12/27

In article <20011220114249J.seki@mr.nasu.toshiba.co.jp>,

[#15879] Re: ERb — m_seki@... 2002/02/12

[#15884] Re: ERb — Tanaka Akira <akr@...17n.org> 2002/02/14

In article <m3eljr5o9m.wl@edwin.mva.biglobe.ne.jp>,

[#15885] Re: ERb — m_seki@... 2002/02/14

[#15886] Re: ERb — m_seki@... 2002/02/14

[#15887] Re: ERb — TAKAHASHI Masayoshi <maki@...> 2002/02/14

高橋征義です。

[#15888] Re: ERb — m_seki@... 2002/02/14

[#15896] Re: ERb — Tanaka Akira <akr@...17n.org> 2002/02/15

In article <20020215085405G.seki@mr.nasu.toshiba.co.jp>,

[#15898] Re: ERb — m_seki@... 2002/02/15

[#15900] Re: ERb — TADA Tadashi <sho@...> 2002/02/16

ただただしです。

[#15901] Re: ERb — m_seki@... 2002/02/16

[#15906] Re: ERb — matz@... (Yukihiro Matsumoto) 2002/02/17

まつもと ゆきひろです

[#15909] 1.6 の寿命 (Re: Re: ERb) — Koji Arai <JCA02266@...> 2002/02/17

新井です。

[#15507] fileutils (2) — Minero Aoki <aamine@...>

あおきです。

30 messages 2001/12/20
[#15512] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/20

高橋征義です。

[#15513] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/21

あおきです。

[#15515] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/21

高橋征義です。結論は最後に。

[#15516] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/21

あおきです。

[#15533] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/22

高橋征義です。

[#15536] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/24

あおきです。

[#15540] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/24

高橋征義です。

[#15545] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/24

あおきです。

[#15557] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/26

高橋征義です。

[#15567] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/27

あおきです。

[#15573] [patch] resolv.rb for win32 platform — Tietew <tietew-ml-ruby-dev@...>

Tietew です。

22 messages 2001/12/28

[ruby-dev:15410] pp - pretty printing

From: Tanaka Akira <akr@...17n.org>
Date: 2001-12-10 09:29:29 UTC
List: ruby-dev #15410
さて、time.rb が片付いたので、次は pp.rb のご意見募集です。

pp.rb (と prettyprint.rb) は、端的にいえば、indent してくれる p です。

つまり、p obj の結果の

  #<PP:0x806486c @stack=[], @nest=[0], @buf=#<PP::Group:0x8064844 @tail=0, @singleline_length=9, @buf=[#<PP::Group:0x80647cc @tail=0, @singleline_length=9, @buf=[#<PP::Text:0x8064768 @text="[">, #<PP::Group:0x80646c8 @tail=1, @singleline_length=1, @buf=[#<PP::Text:0x8064664 @text="1">]>, #<PP::Text:0x80646b4 @text=",">, #<PP::Breakable:0x8064650 @indent=1, @sep=" ">, #<PP::Group:0x8064614 @tail=1, @singleline_length=1, @buf=[#<PP::Text:0x80645b0 @text="2">]>, #<PP::Text:0x8064600 @text=",">, #<PP::Breakable:0x806459c @indent=1, @sep=" ">, #<PP::Group:0x8064560 @tail=1, @singleline_length=1, @buf=[#<PP::Text:0x80644fc @text="3">]>, #<PP::Text:0x806472c @text="]">]>]>>

などという読む気にならない出力のかわりに pp obj は

  #<PP:0x403279c
   @buf=
    #<PP::Group:0x4032666
     @buf=
      [#<PP::Group:0x4032666
        @buf=
         [#<PP::Text:0x40326de @text="[">,
          #<PP::Group:0x4032666
           @buf=[#<PP::Text:0x40326de @text="1">],
           @singleline_length=1,
           @tail=1>,
          #<PP::Text:0x40326de @text=",">,
          #<PP::Breakable:0x40326b6 @indent=1, @sep=" ">,
          #<PP::Group:0x4032666
           @buf=[#<PP::Text:0x40326de @text="2">],
           @singleline_length=1,
           @tail=1>,
          #<PP::Text:0x40326de @text=",">,
          #<PP::Breakable:0x40326b6 @indent=1, @sep=" ">,
          #<PP::Group:0x4032666
           @buf=[#<PP::Text:0x40326de @text="3">],
           @singleline_length=1,
           @tail=1>,
          #<PP::Text:0x40326de @text="]">],
        @singleline_length=9,
        @tail=0>],
     @singleline_length=9,
     @tail=0>,
   @nest=[0],
   @stack=[]>

というように改行・インデントして出力を行ないます。

すこし探した範囲ではメーリングリストにはこのような機能に関する話題は見
当たらなかったのですが、RAA に登録した後に 2回反応が出ています。

  [ruby-dev:14390] [Patch] pp.rb and debug.rb
  [ruby-list:32832] irb & pp

私の目から見て議論が必要そうなところは次のようなところです。

* Wadler の pretty printing algebra を採用したのは正しかったのか?
  機能が足りなくないか?

* inspect と pretty_print を両方実装する場合に関する考察
  (一回考えておかないとなーと思いつつ今のところ困ってないので何も考え
  ていない。)

あと、中身は技術的には

  prettyprint.rb:
    Wadler の pretty printing algebra の実装。
    詳細を説明するのは面倒なのでここではしませんが、私の知っているこの
    類の話の中でこれはもっとも単純なものです。詳細については中に書いて
    ある参考文献に詳しく書いてあります。

  pp.rb:
    prettyprint.rb を利用したインデントつき p の実装。

というふたつのレイヤにわかれており、原理的にいえば prettyprint.rb は
pp.rb 以外からも使えるはずです。

興味のある人は試して下さい。

http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/rough/lib/pp.rb?rev=HEAD&content-type=text/x-cvsweb-markup
http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/rough/lib/prettyprint.rb?rev=HEAD&content-type=text/x-cvsweb-markup
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)

In This Thread

Prev Next