InstallFest Thanks to:

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Chris Gehlker
Date:  
Subject: InstallFest Thanks to:
On Oct 27, 2003, at 11:43 AM, George Gambill wrote:

> Chris (Gehlker), Thanks for your insight with Ruby. The fact that we
> can
> create a Ruby system, which is normally interruptive, and convert
> (maybe not
> the right word) to "C" thereby allowing us to end up with a compiled
> system,
> makes Ruby very attractive to me.
>
> The opportunities (we don't have problems, only opportunities) with the
> equipment taught us a very valuable lesson. Would it help if (in the
> future) all presentations (and demonstrations) were burned to CD's
> thereby
> providing flexibility the day of the event. Chris, Thanks again.


This is a great idea:

For those still looking for an example of a closure, here is one:

# Closure.rb

# A contrived example of a closure in ruby.
# Since the following definition is not inside
# a class definition, it is defining a new method
# of the base class, Object.

def nTimes(aThing)
     return proc { |n| aThing * n }
end


# What just happened there is that the 'proc'
# method converted the the simple block
# ' { |n| aThing * n } into a Proc object.
# Proc objects are closures: they close over
# all the context that applied when the block
# was *defined* including the value of self,
# and any methods, variables and constants
# that apply.

# Let's try it here where aThing is out of
# scope because it was local to the nTimes
# method.

p1 = nTimes(23);
puts p1.call(3);    #puts is short for 'put string'
puts p1.call(4);    #we only need it if we aren't
                     #running interactive
p2 = nTimes("Hello ");
puts p2.call(3);


# run like 'ruby Closure.rb
# output looks like
#
# 69
# 92
# Hello Hello Hello