Skip to content

Instantly share code, notes, and snippets.

Lindsey Kuper lkuper

Block or report user

Report or block lkuper

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 transcripts.md

Prompted by a discussion at the Recurse Center, here are all the courses I took in undergrad and grad school!

Undergrad transcript

Page: 1 of 1						GRINNELL COLLEGE
December 01 2006

Lindsey A Kuper				0180202		XXXX-XX-XXXX
View Main.hs
module Main where
import Data.IORef
data Counter = Counter { x :: IORef Int }
makeCounter :: Int -> IO Counter
makeCounter i = do iref <- newIORef i
return (Counter iref)
@lkuper
lkuper / icfp-speakers.md
Last active Feb 18, 2019
Keynote speakers at every ICFP
View icfp-speakers.md

ICFP 1996

"Computing is Interaction", Robin Milner (Cambridge)

"The case for wireless overlay networks", Randy Katz (UC Berkeley)

ICFP 1997

Joe Armstrong (Ericsson)

@lkuper
lkuper / bulk_email.rb
Created Jul 19, 2016
Tiny script for sending bulk emails via Gmail.
View bulk_email.rb
# Dependencies: `gem install ruby-gmail`
require 'gmail'
require 'csv'
email_subject = "subject line"
email_body = File.open("email.txt", "rb").read
username = "username"
@lkuper
lkuper / blog.diff
Created Dec 29, 2017
Revision history of one of my blog posts.
View blog.diff
$ git log -p --word-diff 2015-12-29-refactoring-as-a-way-to-understand-code.markdown | cat
commit 698f4140d1f141b339731f8fe8c984137f93880e
Author: Lindsey Kuper <lindsey@composition.al>
Date: Fri Jun 9 14:00:31 2017 -0700
Tweak a bunch of tags, mostly!
diff --git a/source/_posts/2015-12-29-refactoring-as-a-way-to-understand-code.markdown b/source/_posts/2015-12-29-refactoring-as-a-way-to-understand-code.markdown
index 8cafa552c1..e3ccd2b267 100644
--- a/source/_posts/2015-12-29-refactoring-as-a-way-to-understand-code.markdown
View gist:c826aa11a1be3fd0229ea1b561d1b879
t = 0.0, t/dt = 0.0, mod(t/dt, 10) = 0.0
t = 0.0001, t/dt = 1.0, mod(t/dt, 10) = 1.0
t = 0.0002, t/dt = 2.0, mod(t/dt, 10) = 2.0
t = 0.0003, t/dt = 2.9999999999999996, mod(t/dt, 10) = 2.9999999999999996
t = 0.0004, t/dt = 4.0, mod(t/dt, 10) = 4.0
t = 0.0005, t/dt = 5.0, mod(t/dt, 10) = 5.0
t = 0.0006, t/dt = 5.999999999999999, mod(t/dt, 10) = 5.999999999999999
t = 0.0007, t/dt = 7.0, mod(t/dt, 10) = 7.0
t = 0.0008, t/dt = 8.0, mod(t/dt, 10) = 8.0
t = 0.0009, t/dt = 9.0, mod(t/dt, 10) = 9.0
@lkuper
lkuper / gist:902730b0dd9e2ee4e499c1beda748fc1
Created Oct 13, 2016
My .aspell.en.pws file as of October 13, 2016
View gist:902730b0dd9e2ee4e499c1beda748fc1
lvars
LVar's
LVars
elseif
EuroSys
tuples
Karpinski
Blandy's
multi
Amr
View gist:fabc35b8f59aebb1cbf28337834f16d0
julia> foo = 3
3
julia> function test(a::Type{Val{foo}}) return foo end
test (generic function with 2 methods)
julia> test(Val{foo})
3
julia> foo = 4
View arithmetic-puzzle-solver.rkt
#lang racket
;; A solver for the following puzzle:
;; Given 5 integers a, b, c, d, and e,
;; find an expression that combines a, b, c, and d with arithmetic operations (+, -, *, and /) to get e.
(require srfi/1)
(define ops '(+ - * /))
View permutations.rkt
;; permutations: takes a list and returns a list of lists,
;; where each is a permutation of the original.
;; I got the idea for the algorithm from http://stackoverflow.com/a/23718676/415518.
(define (permutations ls)
(cond
;; base cases: lists of length 0, 1, or 2
[(null? ls) '(())]
[(equal? (length ls) 1) `((,(first ls)))]
[(equal? (length ls) 2)
`((,(first ls) ,(second ls))
You can’t perform that action at this time.