# Using closures, continuations in real life

**URL:** <https://www.ruby-forum.com/t/using-closures-continuations-in-real-life/87675>\
**Category:** Ruby\
**Created:** [March 5, 2007, 3:05am UTC](https://www.ruby-forum.com/t/using-closures-continuations-in-real-life/87675 "2007-03-05T03:05:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fefo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/ba8739/32.png) [@Fefo](https://www.ruby-forum.com/u/Fefo)\
**Post date:** [March 5, 2007, 3:05am UTC](https://www.ruby-forum.com/t/using-closures-continuations-in-real-life/87675/1 "2007-03-05T03:05:20Z")

</div>

Hi all !! I’m fairly new to Rails programming and finding somewhat  
different n the approach than .NET programming I did previosuly. I  
found this blog post :

> **[Ruby Blocks, Closures, and Continuations](http://deadprogrammersociety.blogspot.com/2007/02/ruby-blocks-closures-and-continuations.html)**
>
> Recently, while blogging about the Ruby.NET project, it was pointed out to me that I was incorrect about Ruby.NET not supporting closures. B...

It’s about closures and contiinuations, I get the basic idea about  
closures for example  
class GreetingGenerator  
def initialize(greeting)  
@block = lambda {|name| puts “#{greeting}, #{name}”}  
end  
def greet(name)  
@block.call name  
end  
end

frenchGreeting = GreetingGenerator.new “Bonjour”  
englishGreeting = GreetingGenerator.new “Hello”  
southernGreeting = GreetingGenerator.new “Howdy”  
japaneseGreeting = GreetingGenerator.new “Ohayou”  
germanGreeting = GreetingGenerator.new “Guten Tag”

frenchGreeting.greet “John”  
englishGreeting.greet “John”  
southernGreeting.greet “John”  
japaneseGreeting.greet “John”  
germanGreeting.greet “John”

puts greeting # just checking that the `greeting` variable doesn’t  
exist in the main scope  
In this case, each block carries a little information with it  
(“greeting”).

This gives me the idea that clousures might be used in practice as a  
functional replacement for a class behaving as an abstract factory  
(the pattern). In this example the function makes a closure over the  
type of language (i.e. english, german) and then we pass to each  
function the parameters for the fabric to produce the output.  
Could anyone post some more comments and tell me if this idea is OK? I  
would love to know about continuations also. !

Thanks & regards  
Federico

Espero sus opiniones y comentarios tambien sobre por ejemplo  
continuations.
