Permalink
Browse files

Added examples to the README file.

  • Loading branch information...
1 parent 4000e60 commit e18c83b301f000a65dc45aab226c8544ebeafdb4 Naveen Sundar G committed Feb 24, 2010
Showing with 53 additions and 1 deletion.
  1. +53 −1 README
View
54 README
@@ -18,4 +18,56 @@ http://www.cs.rpi.edu/~govinn/actors.pdf
:state-var_n value_n)))
3. Sending a message
- (send my-actor message_args)
+ (send my-actor message_args)
+
+****** Features ************
+
+1. Concurrency using the actors model.
+2. Dynamic behavior change of actors.
+
+****** Examples ************
+
+1. A ticker: Keeps printing out a count every 2 seconds, starting from 0 and incrementing it every 2 seconds.
+
+;create the ticker template
+(defactor ticker ((counter 0)) (m)
+ (sleep 2) (pr counter)
+ (incf counter) (send self nil) next)
+; Create an instance
+(setf t1 (ticker))
+; send a message (async)
+(send t1 nil)
+; to stop use
+(stop-actor t1)
+
+2. A print actor: Prints the message which was sent to it. A very useful utility actor.
+
+;create the actor template
+(defactor print-actor () (val) (pr val) next)
+; initialize a new instance
+(setf printer (print-actor))
+;send values for printing
+(send printer "hello, world")
+
+3. A factorial computing actor : The name says it all :)
+
+;create the template
+(defactor fact ((temp 1)) (n cust)
+ (if (equal 1 n)
+ (progn (send cust (* temp 1))
+ (setf temp 1) next)
+ (progn (setf temp (* n temp))
+ (send self (- n 1) cust) next)))
+;create a new instance
+(setf f (fact))
+; send a value
+(send f 4 print-actor)
+
+4. A nagger for fun : Works only in Mac OS X. Keeps saying out aloud "please work" every 10 seconds :)
+
+ (defactor nagger () ()
+ (sleep 10)
+ (trivial-shell:shell-command "say please work")
+ (send self) next)
+; anonymous actor , no way to stop the nagging
+(send (nagger))

0 comments on commit e18c83b

Please sign in to comment.