All the F# code that's fit to tweet!


View the Project on GitHub mathias-brandewinder/fsibot

fsibot quick-starter

All you need to use fsibot is a twitter account. Send a tweet to @fsibot, and if is a valid F# expression, fsibot will evaluate it and reply to you with the result of the evaluation:

Unlike FSI, the F# Interactive, you do not need to terminate your expression with ;; to get it evaluated. However, if you do, fsibot should be able to handle it:

Caveats and limitations


fsibot evaluates expressions only. As a result, using printfn in your exchanges with @fsibot will probably not work as expected, because printfn pretty-prints as a side effects, but evaluates to unit.

> printfn "%s" "Hello, world";;
Hello, world
val it : unit = ()

Typically using printfn will result in a dreaded :

If you use sprintf instead, you can now ace your next interview, and dazzle the audience, with a twitter-sized FizzBuzz implementation, right from your cell phone:


Similarly, let will by itself not do anything; the following code will bind x to 42, but not "return" anything:

> let x = 42;;

val x : int = 42

You can however use let - as long as your expression evaluates to something:

@teramonagi ""F#" is the best language which I know!!!"

— fsibot (@fsibot) August 29, 2014

... or using some F# Verbose syntax:


Yes, F# is a fantastic language for parallel computing. Yes, it's also awesome for data processing. However... if you are using System.Threads or System.IO (for instance) when interacting with @fsibot, I suspect you might not have the best intentions in mind. So @fsibot, in the sake of self-preservation, might just decide that your plans are evil, and not evaluate what you sent it. Also, if your expressions doesn't evaluate in a reasonably timely fashion, @fsibot will probably decide to just cancel it.