GCBot is an IRC bot that Isomer? made to see what happens if you give a bunch of programmers a shared programming environment (IRC) and what happens.
GCBot's programming language is very simple, everything is either a symbol, a function call, a list, a string or a number.
<literal>::= "string"
<symbol> ::= ^,()\[\?]
<comma-expression> ::= <expression>
| <expression> ',' <comma-expression>
<symbol-or-literal> ::= <symbol>
| <literal>
<term> ::= '' <comma-expression> '?'
| <symbol-or-literal>
<expression> ::= <term>
| <term> '(' <comma-expression ')'
Returns the sum of all of it's arguments
Returns the first argument divided by the second etc.
Returns non zero if a is less than b, 0 otherwise.
Returns the string representation of x. Beware, this does not evaluate x.
Calls expression with arguments.
Returns the expressionth item in list
Calls expression, if an exception is raised, then exception handler is called with the exception passed as the only argument.
Returns a list of the head of the function call, a the list of the arguments.
Returns the first item of list.
This function evaluates cond, then evaluates either true or false depending on the result of cond. Anything that isn't 0 is considered true.
beaware that the bindings of lambda's variables can be cached, so if a function can return different values every time it's called, you may end up with some unexpected results.
Returns the number of seconds since 1970-01-01. Beaware that this function changes it's result everytime you call it, and may interact badly with lambda's primative caching.
Will say in channel the result of expression
Binds expression to name.
Returns the list of all symbols that are currently defined in the symbol table.
Returns everything but the first item of list.
Throws an exception given by string.
Unbinds name, returning the previous expression that name was bound to.
No page links to GCBot.