What is Sarahbot?
Sarahbot is a bot on the #scheme-on-freenode( a SISC Scheme Multibot)
she responds to some natural language commands, such as:
- help - Tells you exactly what here natural language commands are, probably useless since you are reading this.
- botsnack - Feed me!
- what is - "What is <something>" asks for information about the
something.
- what are - "What are <somethings>" asks for information about the
somethings.
- where is - "Where is <something>" asks for the location of the
something.
- where are - "Where are <somethings>" asks for the location of the
somethings.
- who is - "Who is <someone>" asks for information about someone.
- later tell - "tell <someone> <something>" asks me to deliver a
message to someone next time they speak.
- tell - "tell <someone> <something>" asks me to deliver a message
to someone as soon as I see them in a channel.
- seen - "seen <someone>" asks for the last time I saw someone
speak.
- be quiet - Asks me to only speak when spoken to
- shut up - Same as above.
- log - log <on|off> asks me to turn on/off logging for this channel.
- listen up - I'll start conversing to any message I see.
- eval - "eval <s-expression>" causes me to evaluate the given
s-expression in R5RS Scheme and return the result
- pretty-print - "pretty-print <s-expression>" causes me to format
the given expression in nice way.
- expand - "expand <s-expression>" causes me to expand all the
macros in the s-expression, and pretty-print the vanilla Scheme
form.
- optimize - "optimize <s-expression>" causes me to expand all the
macros in the s-expression, and pretty-print the optimized vanilla
Scheme form.
- express - "express <s-expression>" will print the uExp version of
an optimized, compiled s-expression.
- dictionary - "dictionary <word>" tells me to look up a word in
Webster's dictionary.
- weather - "weather <city>" asks me for the current weather in a
city
- yow - A bit of randomness from Zippy the Pinhead.
- join - "join <channel-name>" asks me to join the channel as an
infobot
- scheme-channel - "scheme-channel <channel-name>" creates a scheme
channel with the given name
- pasted -
- locate - "locate <someone>" asks me to tell you where I see
someone.
- forget - "forget <something>" asks me to forget what I know about
something.
- is also - "<fact> is also <something>" tells me that the first
term which I already know can also be named by the second.
- is aka - "<fact> is also <something>" tells me that the first
term which I already know can also be named by the second.
- is at - "<something> is at <somewhere>" defines the location of a
term for later recollection by "where is".
- is - "<something> is <something else>" defines a term for later
recollection by "what is".
Sarahbot is also an R5RS Scheme REPL in #schemerepl on freenode. She acts as a REPL when in the appropriate mode:
- .repl - Enters the REPL. All text after this is sent to your Scheme session, which is distinct from others.
- .exit - When in the REPL, returns to chat mode (exits the REPL).
- .attach <nick> - Allows you to join <nick>'s Scheme session.
- .reset - Clears your Scheme session.
- .help - This screen
Where can I get her?
Sarahbot is available from SISC CVS at
http://sisc.cvs.sourceforge.net/sisc/contrib/irc/scheme/sarah/
category-botpage