Skip to content

Instantly share code, notes, and snippets.

View pirrmann's full-sized avatar

Pierre Irrmann pirrmann

View GitHub Profile
@pirrmann
pirrmann / Escher.fsx
Created July 26, 2017 05:06
Escher's fish using FSketch
#r "../packages/FSketch/lib/net452/FSketch.dll"
#r "../packages/FSketch.Svg/lib/net452/FSketch.Svg.dll"
#r "../packages/FSketch.Drawing/lib/net452/FSketch.Drawing.dll"
open FSketch
open FSketch.Dsl
open FSketch.Builder
#r "../packages/FSketch.Winforms/lib/net452/FSketch.Winforms.dll"
fsi.AddPrintTransformer(fun (shapes:FSketch.Shapes) ->
shapes |> FSketch.Frame.FromShapes |> FSketch.Winforms.WinformsDrawer.Draw |> ignore
@pirrmann
pirrmann / Document.fs
Last active October 30, 2017 17:33
DocTales : WIP
module Document.Core
type Emphasis = | Regular | Medium | Strong
type TextPart = { Text:string; Emphasis:Emphasis; Style:string option }
with static member Regular(text) = { Text=text; Emphasis=Regular; Style=None }
static member Medium(text) = { Text=text; Emphasis=Medium; Style=None }
static member Strong(text) = { Text=text; Emphasis=Strong; Style=None }
type Text = Text of TextPart list
with static member Regular(text) = Text([TextPart.Regular(text)])
@pirrmann
pirrmann / Differ.fs
Created March 21, 2018 14:27
Differ
type DifferenceType<'TKey, 'T> =
| Added of 'TKey * 'T
| Removed of 'TKey * 'T
| Modified of 'TKey * 'T * 'T * seq<string * (string * string)> with
member this.Key =
match this with
| Added (key, _)
| Removed (key, _)
| Modified (key, _, _, _) -> key
@pirrmann
pirrmann / Rot13-starter.fsx
Created September 3, 2019 10:08
Rot13-starter.fsx
let stringToCharList (s:string) = Seq.toList s
let charListToString (chars: char list) = System.String(List.toArray chars)
let shiftCharList (charList: char list) =
charList // not really shifted
let rot13 (s: string) =
let charList = stringToCharList s
let shiftedCharList = shiftCharList charList
charListToString shiftedCharList
@pirrmann
pirrmann / Fib.il
Created October 27, 2021 12:10
IL Fib with tail call
.assembly ConsoleApp
{
}
.class public auto ansi abstract sealed beforefieldinit Program
extends System.Object
{
// Methods
.method assembly hidebysig static
int32 FibAcc (