[#46732] ヒアドキュメント内の変数展開が正常に行われない — ShingoKintaka <kamuycikap@...>

Ruby  :1.8.7 (Ubuntu9.10)

12 messages 2010/01/05
[#46733] Re: ヒアドキュメント内の変数展開が正常に行われない — rubikitch@... 2010/01/06

From: ShingoKintaka <kamuycikap@tulip.ocn.ne.jp>

[#46800] DLモジュールの使い方 — kouichi_someya@...

染谷と申します。

12 messages 2010/01/20
[#47678] プログラム実行時に「[BUG] Segmentation fault」 — 染谷 康一 <kouichi_someya@...> 2010/12/09

染谷と申します。

[ruby-list:46745] メール文字化け

From: eiichi_maekawa@...
Date: 2010-01-06 06:01:18 UTC
List: ruby-list #46745
前川です。

出沢さん ありがとうございました。

原因、管理元へ問い合わせ中です。

ruby-list:46397 でいただいたときのメーリングですが、その後、
るびきちさんは、Content-Type: Text/Plain; charset=iso-2022-jp-2
に変えられたのですね。

本メールは、ruby-list:46397 を元に、転送で作成しました。

了



                                                                           
             rubikitch@ruby-la                                             
             ng.org                                                        
                                                                      宛先 
             2009/09/16 23:30           ruby-list@ruby-lang.org (ruby      
                                        mailing list)                      
                                                                        cc 
             ruby-list@ruby-la                                             
                 ng.org へ                                            件名 
             返信してください           [ruby-list:46397] Re: 高階関数的な 
                                        メソッドの使い方について           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           



From: ツムジ <the.little.schemer@gmail.com>
Subject: [ruby-list:46396] 高階関数的なメソッドの使い方について
Date: Wed, 16 Sep 2009 23:10:19 +0900

るびきちです。

> もともと func[0], func[1], func[2] はブロックをオブジェクト化したもので
> した。それをまたブロックで包んで使用するのは、ちょっとすっきりしない気
> がします。でも、"lambda" を使うにはブロックの形でメソッドを渡す必要があ
> るので、今回はこの形にしました。
>
> 今回私がとった方法以外に、高階関数のようにメソッドをうまく使う方法はな
> いのでしょうか?

Object#__send__を使えばシンボルで指定したメソッドを呼び出すことができます。

# -*- coding: euc-jp -*-
class Integer
  def triangle                  # 三角数
    return (self + 1) * self / 2
  end
  def square                    # 四角数
    return self * self
  end
  def pentagon                  # 五角数
    return (3 * self * self - self) / 2
  end
end

func = [ :triangle, :square, :pentagon]
a = Array.new
3.times do |i|
  a[i] = Array.new
  1.upto(1/0.0) do |j|
    n = j.__send__(func[i])
    break if n > 100
    a[i].push(n)
  end
  a
  # => [[1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91]]
  #    , [[1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91], [1, 4, 9, 16,
  25, 36, 49, 64, 81, 100]]
  #    , [[1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91], [1, 4, 9, 16,
  25, 36, 49, 64, 81, 100], [1, 5, 12, 22, 35, 51, 70, 92]]
end

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/
Twit: http://twitter.com/rubikitch/
『Ruby逆引きハンドブック』
http://d.hatena.ne.jp/rubikitch/20090525/rubybook



In This Thread

Prev Next