Skip to content

Instantly share code, notes, and snippets.

View jeremyabbott's full-sized avatar
🧙‍♂️
F# all day

Jeremy Abbott jeremyabbott

🧙‍♂️
F# all day
View GitHub Profile
@jeremyabbott
jeremyabbott / main.fs
Created December 1, 2014 01:11
F# Deserialize
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 }
@jeremyabbott
jeremyabbott / ItsFunctionalBro
Last active August 29, 2015 14:22
Get Loop and Tail lengths from Linked List
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>>) =
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
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 =
open System
open System.Net
open Microsoft.FSharp.Control.WebExtensions
// *********************************
// Pipes vs. Composition
// *********************************
// Pipe operator
let sum =
module SuaveLogging.SuaveExample
open System
open System.IO
open System.Net
open Suave
open Suave.Filters
open Suave.Successful
open Suave.Logging
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"
@jeremyabbott
jeremyabbott / understandingApply.fsx
Last active December 2, 2016 21:52
I think I get apply (finally)
(*
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
@jeremyabbott
jeremyabbott / FirebaseFableFindings.fs
Last active December 31, 2017 16:48
Firebase bindings for Fable
// ts2fable 0.5.2
module rec Firebase
open System
open Fable.Core
open Fable.Import.JS
type [<AllowNullLiteral>] IExports =
abstract EmailAuthProvider: EmailAuthProviderStatic
abstract EmailAuthProvider_Instance: EmailAuthProvider_InstanceStatic
@jeremyabbott
jeremyabbott / LongAsyncTask
Created April 6, 2018 14:39
Async workflow to start something and come back to it later
let now () = System.DateTime.Now
let someOtherWork times = async {
let rec inner' times current = async {
if times = current then
printfn "someOtherWork FINISHED"
else
do! Async.Sleep 1000
let next = current + 1
printfn "someOtherWork step %d @ %s" next (now() |> string)