Voting

Category

real language

Bookmarking

Del.icio.us Digg Diigo DZone Earthlink Google Kick.ie
Windows Live LookLater Ma.gnolia Reddit Rojo StumbleUpon Technorati

Language Soar

Date:04/20/05
Author:Anonymous
URL:n/a
Comments:0
Info:n/a
Score: (3.00 in 1 votes)
sp {99*bottles*init
     (state <s> ^superstate nil)
-->
     (<s> ^beer-bottles 99)
   }
    

sp {99*bottles*propose*countdown
     (state <s> ^beer-bottles <num>)
     -->
     (<s> ^operator <o> +)
     (<o> ^name countdown
             ^num-bottles <num>)
}

sp {99*bottles*apply*countdown
      (state <s>  ^beer-bottles { <num> > 0 }
                       ^operator <o>)
      (<o> ^name countdown
              ^num-bottles <num>)
      -->
      (write (crlf) <num> | bottles of beer on the wall;  
       | <num> | bottles of beer.  You take one down, you pass it around, 
       | (- <num> 1) | bottles of beer on the wall.|)
      (<s> ^beer-bottles <num> -
                ^beer-bottles (- <num> 1))
}

sp {99*bottles*stop-at-0
     (state <s> ^beer-bottles 0)
     -->
     (write (crlf) |Agent is on strike.  Need more beer.|)
     (halt)
}

Download Source | Write Comment

Alternative Versions

Comments

Download Source | Write Comment

Add Comment

Please provide a value for the fields Name, Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.

Please don't post large portions of code here! Use the form to submit new examples or updates instead!

Name:

eMail:

URL:

Security Code:
  
Comment: