From: Koji Arai Date: 1999-10-07T23:21:33+09:00 Subject: [ruby-list:17511] Re: Exception.html & Errno.hmlt for ruby-man-1.4.2-jp ----Next_Part(Thu_Oct__7_22:59:20_1999_955)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit 新井です。 >>> From: nobu.nakada@nifty.ne.jp >>> Date: 06 Oct 1999 17:54:07 +0900 >>> Subject: [ruby-list:17454] Exception.html & Errno.hmlt for ruby-man-1.4.2-jp > なかだです。 > > Exception の情報があまり無いようなので、とりあえず以前作ってみ > た Exception.html と Errno.html および classes.html へのパッチを > 若干リニューアルして出してみます。抜けているものはないでしょうか。 ○ FloatDomainError ○ ZeroDivisionError ○ LocalJumpError ○ ThreadError ○ SystemStackError が抜けてるようです。自分でも書いたことがあるので。 SocketError ってのは、どうしましょ?(socket.htmlに 記述?) あと、fatal って"fatal"っていうオブジェクトがある わけではない(少なくともユーザには見えない)ので、そ の辺説明があった方がいいかも。(はなから、書かない 方がいいかな?) > # ruby-man-1.4.2-jp のファイルを htmllint に掛けると、ボロボロ文 > # 句をいわれるんですが。とくに を
とか
に入れちゃ > # いかん、とか。 うっ、拙作のhtml→texinfo変換スクリプト(rubyマニュ アル限定) が泣いちゃう。 # jweblint --version # This is jweblint, version 1.020 + j0.20 (EUC-JP) # は、なんにも言わなかったなぁ。 Continuation や MatchingDataもあった方がいいだろうっ てことで雛形を付けます。(いや、あくまでも雛形 ^^;;) Continuation なんて自分には難しすぎるのでこのMLの メールを切り抜いて書いてるだけだったりします(^^; # 原さんや稲葉さんの許可がいるなぁ。 どなたか書き直してくれることを期待します。 ----Next_Part(Thu_Oct__7_22:59:20_1999_955)-- Content-Type: Text/Html; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Cont.html" Continuation 前 - 上 - 次 - 目次

Continuation

[ruby-list:13693] Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp>さん

callcc { |cont| ... }

を実行すると、callcc の直前の状態(ローカル変数の値、スタックフレーム) を記憶して contに代入し、... を実行します。cont の指しているこのオブ ジェクトは Continuation クラスのインスタンスであり、これに .call(x)す ると x を callcc の返り値として、先に記憶した状態を復元し、callcc の後 に実行が移ります.

ブロックで、cont.call(x) されずにブロックの実行が終了した場合、その最 終評価値が callcc の返り値になります。

以下は、Continuationによる無限ループの例.

def Loop
  callcc {|c| $c = c }
  yield
  $c.call
end

Loop { print "hello\n" }

callccとは、call-with-current-continuationの略です。

[ruby-list:14085] Inaba Hiroto <inaba@st.rim.or.jp>さん

  def foo()
    $n = 100; x = 1; foo1(); p "x = #{x}" # 1回目
    $n = 200; x = 2; foo1(); p "x = #{x}" # 2回目
              x = 3; foo2(); p "x = #{x}"
  end
  def foo1()
    y = $n + 10 # 1回目 110、2回目 210
    foo11(); p "y = #{y}"
    y = $n + 11 # 1回目 111、2回目 211
  end
  def foo11()
    z = $n + 20                # 1回目 120、2回目 220
    p $n==100 ? "callcc true" : "callcc false"
    $c = callcc {|c|c} if $n == 100; p "z = #{z}" 
    z = $n + 21                # 1回目 121、2回目 221
  end
  def foo2()
    p "$c.call " + ($c ? "true" : "false") 
    $c.call(nil) if $c
  end
  foo


  % ruby -v callcc-toyofuku3.rb
  ruby 1.3.3 (1999-04-20) [i686-linux]
  "callcc true"
  "z = 120"
  "y = 110"
  "x = 1"
  "callcc false"
  "z = 220"
  "y = 210"
  "x = 2"
  "$c.call true"
  "z = 121"
  "y = 111"
  "x = 3"
  "callcc false"
  "z = 220"
  "y = 210"
  "x = 2"
  "$c.call false"
  "x = 3"

スーパークラス:

Object

メソッド:

call(ret)

selfが記憶した状態へ継続します。retは、callccの戻り値になりま す。


前 - 上 - 次 - 目次

matz@netlab.co.jp

----Next_Part(Thu_Oct__7_22:59:20_1999_955)-- Content-Type: Text/Html; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Match.html" MatchingData 前 - 上 - 次 - 目次

MatchingData

正規表現のマッチに関する状態を表すクラス.変数$~は、このクラスのインスタンスです。

スーパークラス:

Data

メソッド:

clone

size
length

部分文字列の数($~.to_a.sizeと同じ)

offset(n)

n番目の部分文字列のオフセット.[start, end]の配列

begin(n)

n番目の部分文字列先頭のオフセット

end(n)

n番目の部分文字列終端のオフセット

to_a

self[n]

pre_match

post_match

to_s

string

マッチ対象の文字列

inspect


前 - 上 - 次 - 目次

matz@netlab.co.jp

----Next_Part(Thu_Oct__7_22:59:20_1999_955)----