From: Michael Malone Date: 2009-03-23T05:18:32+09:00 Subject: Re: Love poem in code for a Grooms Cake Phrogz wrote: > On Mar 21, 8:33 pm, p...@informatimago.com (Pascal J. Bourguignon) > wrote: > >> class Person >> attr_accessor :name >> def initialize(name) >> @name=name >> end >> def love(otherPerson) >> puts self.name+" loves "+otherPerson.name+"\n" >> end >> end >> >> I=Person.new("Jen Switalski") >> you=Person.new("a programmer") >> while true >> I.love(you) >> end >> > > Let's tighten that up a bit, and remove the non-rubyesque camel > casing. > > Person = Struct.new( :name ) do > def love( other ) > puts "#{self.name} loves #{other.name}" > end > end > I = Person.new("Jen Switalski") > you = Person.new("Bob") > while true > I.love(you) > end > > Dunno if that'll fit on the cake, but it gets closer. > > Whenever I've seen anything like this done, it's always been done in C. Though I'm not suggesting we use C, I always thought the #include's added a little something extra. So, why not put a couple of require's at the top? Such as, (require is the statement to include library functions/other modules, so you can re-use functionality) require 'love' require 'time' jen = Person.new("Jen") fiance = Person.new("Fiance") us = [jen, fiance] love = Love.new(jen, fiance) while(Time.now < Death.parts(us)) jen.loves(fiance) unless love.conditional? end This creates a new 'love' object, taking Jen and Fiance as parameters (who are set up as 'constants') and loops while the current time is less than when Death parts the two of you, it says that Jen will love Fiance unless the love is conditional, which is funny because I put it in a conditional statement. It needs editing, but it's something for others to build on! Michael ======================================================================= This email, including any attachments, is only for the intended addressee. It is subject to copyright, is confidential and may be the subject of legal or other privilege, none of which is waived or lost by reason of this transmission. If the receiver is not the intended addressee, please accept our apologies, notify us by return, delete all copies and perform no other act on the email. Unfortunately, we cannot warrant that the email has not been altered or corrupted during transmission. =======================================================================