/// Setup MathJax and HTML helpers @"" |> Util.Html |> Display let html x = { Html = x } let h1 text = { Html = "

" + text + "

" } let h2 text = { Html = "

" + text + "

" } let h3 text = { Html = "

" + text + "

" } let ul text = { Html = "" } let ul3 text = { Html = "" } let img url = { Html = "" } let uli text url = { Html = "" } let uli2 text url = { Html = "

" } let uli3 text url = { Html = "

" } let inline (^+^) (x:HtmlOutput) (y:HtmlOutput) = { Html = x.Html + y.Html } // Use the Sylvester.Tensors package from NuGet #load "Paket.fsx" Paket.Package["Sylvester.Arithmetic"; "Sylvester.Tensors"; "Sylvester.DataFrame"; "FSharp.Interop.Dynamic"] #load "Paket.Generated.Refs.fsx" open System open System.Collections.Generic open System.Linq; open FSharp.Interop.Dynamic open Sylvester.Data open Sylvester.Arithmetic open Sylvester.Arithmetic.N10 open Sylvester.Arithmetic.Collections open Sylvester.Tensors uli2 "West Indies" "https://upload.wikimedia.org/wikipedia/commons/9/98/Caribbean_general_map.png" uli2 "Indians came to Trinidad in the 19th century as indentured labourers" "https://thepeopleafterslavery.files.wordpress.com/2014/03/indentured-labourers-2.png" uli2 "Today Trinidad is multi-ethnic and multi-cultural" "http://currentriggers.com/wp-content/uploads/2016/11/4-17.jpg" uli2 "Divali and other religious festivals celebrated by all" "https://www.guardian.co.tt/image-3.1974716.c274fa76ed?size=512" uli2 "Cricket!" "https://akm-img-a-in.tosshub.com/indiatoday/images/story/201810/AP18297590913026.jpeg?P8W81HcX8oQiGA9xATv_s0lOWQKR3LH9" let titanic = new CsvFile("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv") titanic.["Pclass"].First().Type <- typeof let dt = Frame(titanic) query { for r in dt do groupBy r?Pclass into g sortBy g.Key select ( let survived = (g.Where(fun p -> p?Survived = "1").Count()) |> float let died = (g.Where(fun p -> p?Survived = "0").Count()) |> float let ctotal = survived + died let psurvived = round(100.0 * survived / ctotal) let pdied = round(100.0 * died / ctotal) (g.Key, pdied, psurvived) )} |> Util.Table let v1 = Vec<1000>.Rand //Create a vector of length 1000 let v2 = Vec<500>.Rand //Create a vector of length 500 v1 + v2 //Can we do this? // Create typed instance of some natural numbers let a = new N<1000>() let b = new N<900>() a +< b a +> b a +!= b a +== b check((b * a) +== zero) //Causes type error check ((a - b) +> zero) // But this is ok zero - a //This results in another type, not a compiler error