Instantly share code, notes, and snippets.

Scott Blomquist sblom

View GitHub Profile
@sblom
sblom / GitHubForWindowsPath.cmd
Last active Dec 31, 2015
Crazy hack to extract the GitHub for Windows %PATH% modifications out of shell.ps1 for use in cmd.exe.
View GitHubForWindowsPath.cmd
for /f "usebackq delims=*" %%p in (`powershell -ExecutionPolicy RemoteSigned -Command "& { . $env:LOCALAPPDATA\GitHub\shell.ps1 ; echo $env:path }"`) do set path=%%p
@sblom
sblom / clojure-reducer.linq
Last active Dec 10, 2015
Toy implementation of Clojure 1.5's reducers library in C# (using LINQPad). http://clojure.com/blog/2012/05/15/anatomy-of-reducer.html
View clojure-reducer.linq
List<int> ns = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8 };
Func<Func<int,int>,Func<Func<int,int,int>,Func<int,int,int>>> mapping = delegate(Func<int,int> f) {
return (Func<int,int,int> f1) => ((int r, int i) => f1(r,f(i)));
};
Func<Func<int,bool>,Func<Func<int,int,int>,Func<int,int,int>>> filtering = delegate(Func<int,bool> pred) {
return (Func<int,int,int> f1) => ((int r, int i) => {
if (pred(i))
return f1(r,i);
@sblom
sblom / fracgen.m
Created Apr 12, 2012
Stern–Brocot generator: generate all positive rational numbers
View fracgen.m
frac[1] = {{0, 1}, {1, 1}, {1,0}}
frac[n_] := frac[n] = frac[n - 1] ~Riffle~ newFracs[n - 1]
newFracs[n_] := Apply[Plus, #] & /@ Partition[frac[n], 2, 1]
(* Example usage: *)
Map[Apply[Divide, #] &, frac[14]]
(*
A few very surprising things happen here:
@sblom
sblom / Example1.m
Created Apr 1, 2012
Lazy list implementation for Mathematica
View Example1.m
(* Project Euler Problem 1 *)
(* Find the sum of all the multiples of 3 or 5 below 1000. *)
(* StreamSource[#&] is a simple idiom for "a stream of all the natural numbers". *)
ints = TakeWhile[StreamSource[# &], # < 1000 &];
(* Choose only the numbers that are multiples of 3 or 5. *)
filtered = Select[ints, Mod[#, 3] == 0 || Mod[#, 5] == 0];
(* Sum them. Will probably add Stream/:Total[] since it comes up a lot. *)
@sblom
sblom / Problem1.ma
Created Feb 11, 2012
Embedly challenge (in Mathematica)
View Problem1.ma
n = 1; While[Total[IntegerDigits[n!]] != 8001, n = n + 1]; n
@sblom
sblom / VirtualAccessors.cs
Created Nov 30, 2011
IronPython virtual getter/setter bug
View VirtualAccessors.cs
public class Base {
public virtual int Accessor {
get; set;
}
}
public class GetOverride: Base {
public override int Accessor {
get {
return base.Accessor - 1;
@sblom
sblom / life.ijs
Created Mar 17, 2011
A straight J port of Dyalog's APL implementation of Conways's game of life (http://www.youtube.com/watch?v=a9xAKttWgP4)
View life.ijs
life =: 3 : '+./ (1 ,: y) *. 3 4="0 _ +/ +/ 1 0 _1 |."1/"(0 _) 1 0 _1 |./"0 _ y'