[#44036] [ruby-trunk - Feature #6242][Open] Ruby should support lists — "shugo (Shugo Maeda)" <redmine@...>
[#44084] [ruby-trunk - Bug #6246][Open] 1.9.3-p125 intermittent segfault — "jshow (Jodi Showers)" <jodi@...>
[#44156] [ruby-trunk - Feature #6265][Open] Remove 'useless' 'concatenation' syntax — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
Hi,
(2012/04/09 14:19), Yukihiro Matsumoto wrote:
[#44163] [ruby-trunk - Bug #6266][Open] encoding related exception with recent integrated psych — "jonforums (Jon Forums)" <redmine@...>
[#44233] [ruby-trunk - Bug #6274][Open] Float addition incorrect — "swanboy (Michael Swan)" <swanyboy4@...>
[#44303] [ruby-trunk - Feature #6284][Open] Add composition for procs — "pabloh (Pablo Herrero)" <pablodherrero@...>
[#44329] [ruby-trunk - Feature #6287][Open] nested method should only be visible by nesting/enclosing method — "botp (bot pena)" <botpena@...>
[#44349] [ruby-trunk - Feature #6293][Open] new queue / blocking queues — "tenderlovemaking (Aaron Patterson)" <aaron@...>
On Sat, Apr 14, 2012 at 10:58:12AM +0900, mame (Yusuke Endoh) wrote:
Hi,
On Mon, Apr 16, 2012 at 06:25:59PM +0900, SASADA Koichi wrote:
[#44372] Possible merge error of code in Issue 4651 on to Ruby 1.9.3-p125? — "Blythe,Aaron" <ABLYTHE@...>
tl;dr I believe I have uncovered a merge error to ruby 1.9.3-p125 from Issu=
[#44431] [Backport93 - Backport #6314][Open] Backport r35374 and r35375 — "drbrain (Eric Hodel)" <drbrain@...7.net>
[#44432] [ruby-trunk - Feature #6315][Open] handler to trace output of each line of code executed — "ankopainting (Anko Painting)" <anko.com+ruby@...>
[#44533] [ruby-trunk - Bug #6341][Open] SIGSEGV: Thread.new { fork { GC.start } }.join — "rudolf (r stu3)" <redmine@...>
Hello,
On Mon, Apr 23, 2012 at 11:17 PM, Yusuke Endoh <mame@tsg.ne.jp> wrote:
Hello,
(4/24/12 6:55 AM), Yusuke Endoh wrote:
> kosaki (Motohiro KOSAKI) wrote:
[#44540] [ruby-trunk - Bug #6343][Open] Improved Fiber documentation — "andhapp (Anuj Dutta)" <anuj@...>
[#44612] [ruby-trunk - Feature #6354][Open] Remove escape (break/return/redo/next support) from class/module scope — "ko1 (Koichi Sasada)" <redmine@...>
[#44630] [ruby-trunk - Feature #6361][Open] Bitwise string operations — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>
On Fri, Apr 27, 2012 at 8:53 PM, MartinBosslet (Martin Bosslet)
On Saturday, April 28, 2012 at 8:52 AM, KOSAKI Motohiro wrote:
[#44636] [ruby-trunk - Bug #6364][Open] Segmentation fault happend when running test_cptr.rb — "raylinn@... (ray linn)" <raylinn@...>
[#44667] possible YAML bug in ruby 1.9.3p125? — Young Hyun <youngh@...>
YAML in ruby 1.9.3p125 seems to have a bug reading in YAML from older =
[#44686] [BUG] not a node 0x07 — ronald braswell <rpbraswell@...>
Running ruby 1.8.6 on Solaris 10.
2012/4/28 ronald braswell <rpbraswell@gmail.com>:
I have heard reports of this on 1.9.x. Do you know if this problem has
[#44704] [ruby-trunk - Feature #6373][Open] public #self — "trans (Thomas Sawyer)" <transfire@...>
Issue #6373 has been updated by Marc-Andre Lafortune.
[#44743] [ruby-trunk - Feature #6375][Open] Python notation for literal Hash — "alexeymuranov (Alexey Muranov)" <redmine@...>
[#44748] [ruby-trunk - Feature #6376][Open] Feature lookup and checking if feature is loaded — "trans (Thomas Sawyer)" <transfire@...>
On Thu, May 3, 2012 at 6:02 AM, mame (Yusuke Endoh) <mame@tsg.ne.jp> wrote:
[ruby-core:44099] [ruby-trunk - Feature #4610] Proc#curry behavior is inconsistent with lambdas containing default argument values
Issue #4610 has been updated by jballanc (Joshua Ballanco).
=begin
I have just tried with 2.0 and keyword args, and I think the situation is now more confusing. Now, if one wants to pass alternate values for optional arguments, the only way to do so it with the last call like so:
>> l = ->(a, b, foo: 'hello', bar: 'world') { puts a, b, "#{foo}, #{bar}" }
=> #<Proc:0x007ffce11d96e8@(irb):1 (lambda)>
>> l.(1,2)
1
2
hello, world
=> nil
>> c = l.curry
=> #<Proc:0x007ffce11e10c8 (lambda)>
>> c = c.(1)
=> #<Proc:0x007ffce11ea970 (lambda)>
>> c.(bar: 'moon')
ArgumentError: wrong number of arguments (1 for 2)
from (irb):1:in `block in irb_binding'
from (irb):5:in `call'
from (irb):5
from ./bin/irb:12:in `<main>'
>> c.(2)
1
2
hello, world
=> nil
>> c.(2, bar: 'moon', foo: 'goodnight')
1
2
goodnight, moon
=> nil
Unfortunately, there is no way to know when one is about to make the last call on a curried proc, since the arity is always reported as -1:
>> l.arity
=> 2
>> c = l.curry
=> #<Proc:0x007ffce12008d8 (lambda)>
>> c.arity
=> -1
>> c = c.(1)
=> #<Proc:0x007ffce1208a88 (lambda)>
>> c.arity
=> -1
I very much like the proposal for a Proc#pass_option method. Should this be reopened or shall I file a separate bug for the implementation of Proc#pass_option?
=end
----------------------------------------
Feature #4610: Proc#curry behavior is inconsistent with lambdas containing default argument values
https://bugs.ruby-lang.org/issues/4610#change-25628
Author: jballanc (Joshua Ballanco)
Status: Rejected
Priority: Normal
Assignee: mame (Yusuke Endoh)
Category:
Target version:
If I curry a lambda with 3 arguments, then I can call three times with one argument each time to get the desired results:
ruby-1.9.2-p180 :001 > l = ->(a, b, c) { puts "#{a}, #{b}, #{c}" }
#<Proc:0x00000100963650@(irb):1 (lambda)>
ruby-1.9.2-p180 :002 > c = l.curry
#<Proc:0x0000010095c9e0 (lambda)>
ruby-1.9.2-p180 :003 > c.('one').('two').('three')
one, two, three
nil
However, if the lambda has default values and I curry it, the entire lambda is evaluated after the first #call:
ruby-1.9.2-p180 :004 > l = ->(a = 'ichi', b = 'ni', c = 'san') { puts "#{a}, #{b}, #{c}" }
#<Proc:0x00000100877b88@(irb):4 (lambda)>
ruby-1.9.2-p180 :005 > c = l.curry
#<Proc:0x0000010086b338 (lambda)>
ruby-1.9.2-p180 :006 > c.('one').('two').('three')
one, ni, san
NoMethodError: undefined method `call' for nil:NilClass
This behavior seem very inconsistent. Ideally, if I wanted to use the default argument at a certain position in a currie proc, I would just #call with no arguments, like so:
ruby-1.9.2-p180 :007 > c.('one').().('three')
#=> Propose that this result in: "one, ni, three"
--
http://bugs.ruby-lang.org/