[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03135] Re: Min and max?

From: gotoken@... (GOTO Kentaro)
Date: 2000-06-06 18:28:35 UTC
List: ruby-talk #3135
In message "[ruby-talk:03113] Min and max?"
    on 00/06/06, Aleksi Niemel<aleksi.niemela@cinnober.com> writes:
>First I consider to add it to Numeric, but then I wrote something like
>
>module Kernel
>  def min(a, b)
>    if a < b
>      a
>    else
>      b
>    end
>  end
>end
>
>Actually I can't say min(a,b) is much more beautiful compared to [a,b].min()
>but at least you don't have to know anything about arrays when using it and
>I expect it to be faster.
>
>Maybe the implementation should include the block version allowing c =
>min(a,b){|a,b| a.foo() < b.bar()}.

What do you think about putting mathfunc.rb including function 
representation like those to RAA?

BTW, Maybe I will define min as follows, 

  module Math
    def pickup0(symbol, *arg, &blk)
      enum = arg.find_all{|a| a.is_a? Enumerable}
      sing = arg - enum
      r0 = enum.collect{|e| Math::pickup0(symbol, *e.to_a, &blk)}
      sing = sing.collect{|s| [yield(s),s]} if iterator?
      res = (sing + r0).send(symbol)
    end

    def pickup(symbol, *arg, &blk)
      res = Math::pickup0(symbol, *arg, &blk)
      if res.is_a? Array
        res.pop
      else
        res
      end
    end

    def min(*arg, &blk)
      Math::pickup(:min, *arg, &blk)
    end

    def max(*arg, &blk)
      Math::pickup(:max, *arg, &blk)
    end

    module_function :min, :max, :pickup, :pickup0
  end

  if __FILE__ == $0
    a = [2,4,3]
    b = [5,-1,-3]
    p Math::min(1,2,3)              #=>  1
    p Math::min(a)                  #=>  2
    p Math::max(a)                  #=>  4
    p Math::min(a,b)                #=> -3
    p Math::max(a,b)                #=>  5
    p Math::max(a,b){|i| 1.0/i**2}  #=> -1
  end

-- gotoken

In This Thread

Prev Next