1: 
  2: 
  3: 
  4: 
  5: 
  6: 
  7: 
  8: 
  9: 
 10: 
 11: 
 12: 
 13: 
 14: 
 15: 
 16: 
 17: 
 18: 
 19: 
 20: 
 21: 
 22: 
 23: 
 24: 
 25: 
 26: 
 27: 
 28: 
 29: 
 30: 
 31: 
 32: 
 33: 
 34: 
 35: 
 36: 
 37: 
 38: 
 39: 
 40: 
 41: 
 42: 
 43: 
 44: 
 45: 
 46: 
 47: 
 48: 
 49: 
 50: 
 51: 
 52: 
 53: 
 54: 
 55: 
 56: 
 57: 
 58: 
 59: 
 60: 
 61: 
 62: 
 63: 
 64: 
 65: 
 66: 
 67: 
 68: 
 69: 
 70: 
 71: 
 72: 
 73: 
 74: 
 75: 
 76: 
 77: 
 78: 
 79: 
 80: 
 81: 
 82: 
 83: 
 84: 
 85: 
 86: 
 87: 
 88: 
 89: 
 90: 
 91: 
 92: 
 93: 
 94: 
 95: 
 96: 
 97: 
 98: 
 99: 
100: 
101: 
102: 
103: 
104: 
105: 
106: 
107: 
108: 
109: 
110: 
111: 
112: 
113: 
114: 
115: 
116: 
117: 
118: 
119: 
120: 
121: 
122: 
123: 
124: 
125: 
126: 
127: 
128: 
129: 
130: 
131: 
132: 
133: 
134: 
135: 
136: 
137: 
138: 
139: 
140: 
141: 
142: 
143: 
144: 
145: 
146: 
147: 
148: 
149: 
150: 
151: 
152: 
153: 
154: 
// (**
// - title : FsReveal 
// - description : Introduction to FsReveal
// - author : Karlkim Suwanmongkol
// - theme : Sky
// - transition : default

// ***

// ### What is FsReveal?

// - Generates [reveal.js](http://lab.hakim.se/reveal-js/#/) presentation from [markdown](http://daringfireball.net/projects/markdown/)
// - Utilizes [FSharp.Formatting](https://github.com/tpetricek/FSharp.Formatting) for markdown parsing

// ***

// ### Reveal.js

// - A framework for easily creating beautiful presentations using HTML.  
  
// > **Atwood's Law**: any application that can be written in JavaScript, will eventually be written in JavaScript.

// ***

// ### FSharp.Formatting

// - F# tools for generating documentation (Markdown processor and F# code formatter).
// - It parses markdown and F# script file and generates HTML or PDF.
// - Code syntax highlighting support.
// - It also evaluates your F# code and produce tooltips.

// ***

// ### Syntax Highlighting

// #### F# (with tooltips)

// *)
// let a = 5
// let factorial x = [1..x] |> List.reduce (*)
// let c = factorial a
// (** 
// `c` is evaluated for you
// *)
// (*** include-value: c ***)
// (**

// --- 

// #### More F#

// *)
// [<Measure>] type sqft
// [<Measure>] type dollar
// let sizes = [|1700<sqft>;2100<sqft>;1900<sqft>;1300<sqft>|]
// let prices = [|53000<dollar>;44000<dollar>;59000<dollar>;82000<dollar>|] 
// (**

// #### `prices.[0]/sizes.[0]`

// *)
// (*** include-value: prices.[0]/sizes.[0] ***)
// (**

// ---

// #### C#

//     [lang=cs]
//     using System;


//     class Program
//     {
//         static void Main()
//         {
//             Console.WriteLine("Hello, world!");
//         }
//     }


// ---

// #### JavaScript

//     [lang=js]
//     function copyWithEvaluation(iElem, elem) {
//       return function (obj) {
//           var newObj = {};
//           for (var p in obj) {
//               var v = obj[p];
//               if (typeof v === "function") {
//                   v = v(iElem, elem);
//               }
//               newObj[p] = v;
//           }
//           if (!newObj.exactTiming) {
//               newObj.delay += exports._libraryDelay;
//           }
//           return newObj;
//       };
//     }

// ---

// #### Haskell
 
//     [lang=haskell]
//     recur_count k = 1 : 1 : zipWith recurAdd (recur_count k) (tail (recur_count k))
//             where recurAdd x y = k * x + y

//     main = do
//       argv <- getArgs
//       inputFile <- openFile (head argv) ReadMode
//       line <- hGetLine inputFile
//       let [n,k] = map read (words line)
//       printf "%d\n" ((recur_count k) !! (n-1))


// *code from [NashFP/rosalind](https://github.com/NashFP/rosalind/blob/master/mark_wutka%2Bhaskell/FIB/fib_ziplist.hs)*

// ---

// ### SQL
 
//     [lang=sql]
//     select * 
//     from 
//       (select 1 as Id union all select 2 union all select 3) as X 
//     where Id in (@Ids1, @Ids2, @Ids3)

// *sql from [Dapper](https://code.google.com/p/dapper-dot-net/)* 

// ***

// **Bayes' Rule in LaTeX**

// $ \Pr(A|B)=\frac{\Pr(B|A)\Pr(A)}{\Pr(B|A)\Pr(A)+\Pr(B|\neg A)\Pr(\neg A)} $

// ***

// ### The Reality of a Developer's Life 

// **When I show my boss that I've fixed a bug:**
  
// ![When I show my boss that I've fixed a bug](http://www.topito.com/wp-content/uploads/2013/01/code-07.gif)
  
// **When your regular expression returns what you expect:**
  
// ![When your regular expression returns what you expect](http://www.topito.com/wp-content/uploads/2013/01/code-03.gif)
  
// *from [The Reality of a Developer's Life - in GIFs, Of Course](http://server.dzone.com/articles/reality-developers-life-gifs)*

// *)