Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations Functional DSLs for Biocomputation

Functional DSLs for Biocomputation



Colin Gravill talks about how using F# to construct a shared analysis engine and the languages used to make the individual tools.


Colin Gravill is a software developer at Microsoft Research in the biological computation group. He has a background in computational modeling and visualization from a venerable Fortran77 project to JavaScript. A recent convert to functional approaches pure and pragmatic, now working on biological simulations in F#.

About the conference

Intended to be hands-on and interactive, FP Days gives you the opportunity to share experiences with others, find out more about the latest available tools and techniques, network with your peers and have a thoroughly enjoyable experience.The event has a strong, practical focus on learning more about the principles of Functional Programming, using it effectively and exploring possibilities with current FP technologies.

Recorded at:

Mar 08, 2013

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Active Patterns are really very useful

    by Faisal Waris,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    as an example here is an HTML parser in only 140 lines of F# using Active Patterns:

  • Re: Active Patterns are really very useful

    by Colin Gravill,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Nice use of the active pattern parser approach Faisal. You should definitely share the HTML parser on the excellent, and since released, Try F# ( The example driver just needs tweaking use asynchronous workflows then works great:

    let download (href:string)=
    async {
    let ws = new System.Net.WebClient()
    let! html = ws.AsyncDownloadString(Uri(href))
    return html

    |> (download >> Async.RunSynchronously >> parse >> serialize >> parse)

    The example from my talk for species parsing is on there for people to experiment with:

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p