Project

General

Profile

Feature #12957

A more OO way to create lambda Procs

Added by justcolin (Colin Fulton) over 3 years ago. Updated over 3 years ago.

Status:
Feedback
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:78202]

Description

Currently to create a lambda Proc one has to use lambda { } or -> { }. For doing metaprogramming it would be nice to have a more OO way to generate them. Something like LambdaProc.new. That way one could write:

class MetaThingy
  def initialize proc_class
    @anonymous_function = proc_class.new do
      # Some Code
    end
  end
end

and pass in either Proc or LambdaProc depending on their needs, instead of:

class MetaThingy
  def initialize proc_type
    @anonymous_function = case proc_type
                          when :proc
                            proc do
                              # Some Code
                            end
                          when :lambda
                            lambda do
                              # Some Code
                            end
                          end
    end
  end
end

This is not a common use case, but would help make the language more orthogonal.


Related issues

Related to Ruby master - Feature #7314: Convert Proc to Lambda doesn't work in MRIAssignedmatz (Yukihiro Matsumoto)Actions
Related to Ruby master - Feature #15973: Let Kernel#lambda always return a lambdaAssignedmatz (Yukihiro Matsumoto)Actions

Also available in: Atom PDF