[#11383] Re: $2000 USD Reward for help fixing Segmentation Fault in GC — Brent Roman <brent@...>
Daz,
[#11396] Re: $2000 USD Reward for help fixing Segmentation Fault in GC — Brent Roman <brent@...>
Sylvain,
[#11401] Proc.== — David Flanagan <david@...>
Can anyone construct two proc objects p1 and p2, without using clone or
Hi,
Okay, anything other than the degenerate case of a proc with no body?
On Jun 4, 2007, at 22:57, David Flanagan wrote:
[#11409] Method introspection ? — "Jonas Pfenniger" <zimbatm@...>
Hello,
[#11418] currying in Ruby — David Flanagan <david@...>
I've written a little argument currying module for Procs and Methods. I
[#11431] Are there a better set of unit tests for Array? — "John Lam (CLR)" <jflam@...>
It seems like the unit tests that we have in Ruby.net were:
[#11439] comments needed for Random class — "NAKAMURA, Hiroshi" <nakahiro@...>
-----BEGIN PGP SIGNED MESSAGE-----
On 6/12/07, NAKAMURA, Hiroshi <nakahiro@sarion.co.jp> wrote:
[#11450] Re: new method dispatch rule (matz' proposal) — David Flanagan <david@...>
This is a late response to the very long thread that started back in
On 6/13/07, David Flanagan <david@davidflanagan.com> wrote:
On 6/13/07, David Flanagan <david@davidflanagan.com> wrote:
[#11457] Inclusion of bug #9376 in 1.8.6 branch — Sylvain Joyeux <sylvain.joyeux@...4x.org>
Would it be possible to include the fix for bug #9376 in 1.8.6 ? It is not
[#11462] What should this code do? — "John Lam (CLR)" <jflam@...>
Thinking about control flow these days ...
[#11472] Strange Array#transpose behavior for custom to_ary method — Daniel Berger <djberg96@...>
Ruby 1.8.6 p36
[#11481] Ancestors for Singleton classes — "Robert Dober" <robert.dober@...>
I am taking this away from ruby-talk as it contains patches.
[#11482] Ruby Changes Its Mind About Non-Word Characters — James Edward Gray II <james@...>
Does this look like a bug to anyone else?
James Edward Gray II wrote:
Hi,
On Jun 16, 2007, at 2:41 PM, Vincent Isambart wrote:
> > It is because the and サ characters are not in ISO-8859-1.
[#11505] Question about the patchlevel release cycle — Sylvain Joyeux <sylvain.joyeux@...4x.org>
1.8.6 thread support was broken in bad ways. It stayed for three months
> could you refer to bug #s?
Hi,
Hi, I'm the 1.8.6 branch manager.
On 6/20/07, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
[#11533] method_missing for Enumerator — TRANS <transfire@...>
What do others think of this for 1.9+?
[#11543] Re: Apple reportedly to ship with ruby 1.8.6-p36 unless informed what to patch — James Edward Gray II <james@...>
On Jun 27, 2007, at 4:47 PM, Bill Kelly wrote:
Hi,
On Jun 30, 2007, at 4:51 AM, Urabe Shyouhei wrote:
Hi,
Hi,
Hi,
I haven't seen it mentioned explicitly in this thread so far, but I
[#11545] Proc initialize method not called under certain circumstances — "John Lam (CLR)" <jflam@...>
class Proc
On Fri, 29 Jun 2007 05:43:14 +0900, "John Lam (CLR)" <jflam@microsoft.com> wrote:
So, is it correct to assume that for language constructs that create built-in types like Range, Array, Hash etc that user-defined initialize methods are never called?
currying in Ruby
I've written a little argument currying module for Procs and Methods. I
think my only real contribution here is the use of << and >> operators
as a shorthand, which I haven't seen done elsewhere.
Anyone care to review the code and comment?
David
#
# This module defines currying methods and operators for classes which
# have a call method.
#
# This module automatically includes itself into Proc and Method.
#
module Curry
# Return a lambda which is equivalent to an invociation of self
# with the specified initial arguments. When only a single argument
# is being specified, the >> alias may be simpler to use.
def set_initial_args(*initial)
lambda {|*rest| self.call(*initial.concat(rest))}
end
# Return a lambda which is equivalent to an invociation of self
# with the specified final arguments. When only a single argument
# is being specified, the << alias may be simpler
def set_final_args(*final)
lambda {|*rest| self.call(*rest.concat(final))}
end
alias >> set_initial_args
alias << set_final_args
end
class Proc; include Curry; end
class Method; include Curry; end
# Here is some example code. First with Procs
difference = lambda { |x,y| x-y }
minus2 = difference << 2 # Bind y to 2
tenminus = difference >> 10 # Bind x to 10
puts minus2[10] # Prints 8
puts tenminus[2] # Prints 8
# It also works if we start with a method
def f(x,y,z); x*y+z; end
m = method(:f)
m1 = m>>1 # bind x to 1
m2 = m<<3 # bind z to 3
m3 = m.set_initial_args(1,2) # bind x,y to 1,2
m4 = m.set_final_args(2,3) # bind y,z to 2,3
m5 = m.set_initial_args(1,2,3) # bind x,y,z to 1,2,3
# These should all print 5
puts m[1,2,3]
puts m1[2,3]
puts m2[1,2]
puts m3[3]
puts m4[1]
puts m5[]