Ruby では、Struct を「struct-flavored classes」、ラムダを「lambda-flavored procs」と考えるようになりました。これらの区別を表すより正確な用語はありますか?
私が何を意味するかを説明するには:
p = proc { |text| puts text }
p.inspect
#=> #<Proc:0x007fd9c135fd98@(irb):5>
# vs
l = lambda { puts 'foo' }
l.inspect #=> "#<Proc:0x007fbf33ad2830@(irb):7 (lambda)>"
...そして同様に:
Point = Class.new
Point.class #=> Class
p = Point.new
p.class #=> Point
p.inspect #=> #<Point:0x007fd9c1038ef8>
# vs
Point = Struct.new(:x, :y)
Point.class #=> Class
p = Point.new
p.class #=> Point
p.inspect #=> "#<struct Point x=nil, y=nil>"