View understandingApply.fsx
(*
I think I understand apply!
Apply is a function that takes an elevated multi parameter functions and partially applies it for you.
*)
//For example:
// usage: printfn "%s" <| sayGood "morning" "Clément"
let sayGood = sprintf "Good %s %s" // string -> string -> string
View resultMonad.fsx
type Result<'a> =
| Success of 'a
| Failure of string
let parseInt x =
try
System.Int32.Parse(x) |> Success
with ex -> ex.Message |> Failure
parseInt "hello"
View SuaveLoggingExample
module SuaveLogging.SuaveExample
open System
open System.IO
open System.Net
open Suave
open Suave.Filters
open Suave.Successful
open Suave.Logging
View FSharpAdvancedTopics.fsx
open System
open System.Net
open Microsoft.FSharp.Control.WebExtensions
// *********************************
// Pipes vs. Composition
// *********************************
// Pipe operator
let sum =
View FindDupsRec.fs
let findDuplicateLetter list =
let rec findDuplicate list item =
match list with
| [] -> "No duplicates were found"
| x::xs when item = x -> x
| x::xs -> findDuplicate xs x
findDuplicate (List.sort list) ""
[<EntryPoint>]
let main argv =
View WubWub.fs
open System
let getLyrics (input : string) (matchString : string) =
input.Split([|matchString|], StringSplitOptions.RemoveEmptyEntries)
|> Array.reduce (fun acc item -> sprintf "%s %s" acc item)
[<EntryPoint>]
let main argv =
printfn "%A" (getLyrics "WUBWUBWUBIWUBAMWUBWUBXWUBWUBWUB" "WUB")
0 // return an integer exit code
View ItsFunctionalBro
open System.Text.RegularExpressions;
let buildList args =
Regex.Matches(args, "(\d\,\s?\d)")
|> Seq.cast<Match>
|> Seq.map (fun m -> m.Value.Replace(" ", "").Split([|','|]))
|> Seq.toList
let findDuplicatePointer list =
let rec findCycleRec (oldList:list<array<string>>) (newList:list<array<string>>) =
View main.fs
open System.Net.Http
open System.Net.Http.Formatting
open Newtonsoft;
// Learn more about F# at http://fsharp.net
// See the 'F# Tutorial' project for more help.
[<CLIMutable>]
type Movie = {
ID : int;
Name : string }