- (let ((behaviour (hash-table-ref actor-table address)))
- (unless (null? behaviour)
- ((hash-table-ref actor-table address)))) message)
+ (print "Dispatching message " message " to " address)
+ (let* ((behaviour (hash-table-ref actor-table address))
+ (value (behaviour address message)))
+ (match value
+ ('done (hash-table-delete! actor-table address))
+ ('sleep 'do-nothing)
+ (else
+ hash-table-set! actor-table address value))))