Skip to content

Instantly share code, notes, and snippets.

Lincoln Atkinson latkin

Block or report user

Report or block latkin

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View code.fsx
open System
open System.Collections
open System.Collections.Generic
open System.Diagnostics
open System.Linq
module Algos =
// non-lazy solutions
latkin / regexinfo.ps1
Last active Aug 23, 2018
Regex matching helper
View regexinfo.ps1
Dumps capture group locations and names/numbers
> regexinfo 'Jenny: 555-867-5309' '(?<name>\w+):\s+(?<phone>(?:(?<area>\d{3})-)?(\d{3}-\d{4}))'
[Jenny]: [[555]-[867-5309]]
| || |
| || 1
| |area
| phone
latkin / func.ps1
Created Oct 14, 2017
PowerShell engine stack overflow
View func.ps1
# dot-source this function and try running `f 0`
# It work on Windows in Windows PowerShell and PowerShell Core
# On Mac the powershell process terminates with `Process is terminating due to StackOverflowException. Abort trap: 6`
# programmatically generated by parsing
function f { param($codepoint)
if(($codepoint -ge 0x0000) -and ($codepoint -le 0x0008)){ 'CM' }
elseif($codepoint -eq 0x0009) { 'BA' }
elseif($codepoint -eq 0x000A) { 'LF' }
elseif(($codepoint -ge 0x000B) -and ($codepoint -le 0x000C)){ 'BK' }

Keybase proof

I hereby claim:

  • I am latkin on github.
  • I am latkin ( on keybase.
  • I have a public key ASCflg_ClIWLE2q9NWAhQHrj7HkQGqf0na2Msud4uTsV6Ao

To claim this, I am signing this object:

latkin /
Last active Jul 13, 2017
Ripgrep v git grep speed comparison


// OS
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.15063 N/A Build 15063
System Manufacturer:       Apple Inc.
System Model:              MacBookPro11,5
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
latkin / benchmark.ps1
Created Aug 2, 2016
Benchmark of PowerShell de-duplication cmdlets
View benchmark.ps1
# Benchmarking code used to produce results from blog post
# home-grown HashSet-based approach
function hashunique {
[Parameter(Mandatory=$true, ValueFromPipeline = $true)]
[Object[]] $InputObject
latkin /
Last active Mar 31, 2016
How to extend a 3rd-party API with F# units of measure

Extending a 3rd-party API with F# units of measure

F# units of measure are nice, but what if I'm using a 3rd-party library which doesn't support UOM? I don't want to re-implement the library, but it would be nice to add the extra safety afforded by UOM. Can I somehow annotate the APIs of the 3rd party library with units?


How to do it

Say you have some unit-free external library like this, which you can't modify:

latkin / NativeMethods.fs
Created Feb 22, 2016
F# p/invoke example with structs
View NativeMethods.fs
namespace Test
open System.Runtime.InteropServices
// F# implementation of
module NativeMethods =
type ResourceScope =
| Connected = 0x1u
| GlobalNet = 0x2u
latkin / TestResults.xml
Created Feb 16, 2016
FCS test failures
View TestResults.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!--This file represents the results of running a test suite-->
<test-results name="C:\src\FSharp.Compiler.Service\bin\v4.0\FSharp.Compiler.Service.Tests.dll" total="373" errors="2" failures="14" not-run="8" inconclusive="0" ignored="8" skipped="0" invalid="0" date="2016-02-15" time="21:36:11">
<environment nunit-version="" clr-version="2.0.50727.8670" os-version="Microsoft Windows NT 6.2.9200.0" platform="Win32NT" cwd="C:\src\FSharp.Compiler.Service" machine-name="LINCOLN-PC" user="lincoln" user-domain="LINCOLN-PC" />
<culture-info current-culture="en-US" current-uiculture="en-US" />
<test-suite type="Test Project" name="" executed="True" result="Failure" success="False" time="112.439" asserts="0">
<test-suite type="Assembly" name="C:\src\FSharp.Compiler.Service\bin\v4.0\FSharp.Compiler.Service.Tests.dll" executed="True" result="Success" success="True" time="52.240" asserts="0">
latkin /
Last active Feb 9, 2016
Blog: sequence benchmarking
You can’t perform that action at this time.