Skip to content

Instantly share code, notes, and snippets.

Hunter McMillen mcmillhj

Block or report user

Report or block mcmillhj

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
@mcmillhj
mcmillhj / rainforestqa.pl
Created Apr 29, 2014
Rainforest QA challenge
View rainforestqa.pl
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use English qw(-no_match_vars);
use JSON qw(decode_json);
use LWP::UserAgent;
@mcmillhj
mcmillhj / multi-top.pl
Created Dec 18, 2014
ssh into a list of servers and call the top command, then concatenate the results into a single file
View multi-top.pl
#!/usr/bin/perl
use strict;
use warnings;
exit(0) unless @ARGV;
open(my $fh, '>>', 'mutlti-top.out') or die "$!";
foreach my $server ( @ARGV ) {
print {$fh} `ssh ${server} top -bn 1`;
View type-example.sml
(* fn: ('a -> 'b) -> 'a list -> 'b list *)
fun accumulate _ [] = []
| accumulate f (x::xs) = f x :: accumulate f xs
(* fn: ('a -> 'b) * 'a -> 'b list *)
fun accumulate (f: ('a -> 'b), xs: 'a list): 'b list =
raise Fail "'accumulate' has not been implemented"
View tests.sml
fun run_tests _ [] = []
| run_tests f (x :: xs) =
let
fun aux { description, is_correct } =
let
val expl = description ^ ": " ^
(if is_correct then "PASSED" else "FAILED") ^ "\n"
in
(print (expl); is_correct)
end
View example.sml
(* foldl type
fn: ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
*)
fun fromBase base = let
fun f (x, NONE ) = NONE
| f (x, SOME n) =
if x >= 0 andalso x < base then SOME(n * base + x)
else NONE
in
View srcAccumulate.idr
module Accumulate
export
accumulate : (a -> b) -> List a -> List b
accumulate f [] = []
accumulate f (x::xs) = f x :: accumulate f xs
View inverse_captcha.sml
fun inverse_captcha_2 input = let
val digits = List.map (fn c => (Char.ord c) - 48) (explode input)
fun halve [] = ([], [])
| halve xs = let
val length = (List.length xs) div 2
val firstHalf = List.take(xs, length)
val secondHalf = List.drop(xs, length)
in
(xs, secondHalf @ firstHalf)
@mcmillhj
mcmillhj / convert.p6
Created Apr 26, 2018
Sharable Signatures?
View convert.p6
#!perl6
my @alphabet = ('0' .. '9', 'A' .. 'Z', 'a' .. 'z').flat;
sub to-digits(Int $n is copy, Int $b where $b >= 2 && $b <= 62 --> Str) {
my @digits;
while $n > 0 {
@digits.push(@alphabet[$n % $b]);
$n = $n div $b;
}
@mcmillhj
mcmillhj / repl.bash
Created Apr 26, 2018
Array as Hash key
View repl.bash
> my %h{Array};
{}
> %h{[1,2]} = [3,4];
Type check failed in binding to parameter 'key'; expected Array but got Int (1)
in block <unit> at <unknown file> line 1
@mcmillhj
mcmillhj / seq.p6
Created Apr 27, 2018
Why does this return a Seq? I expected a List.
View seq.p6
sub search(Int $x, Int $y, Int $max-depth is copy = 25000 --> List) {
state %cache{Set};
my @queue = (($x, $y, Nil, Nil),);
while @queue and --$max-depth > 0 {
my ($x, $y, $px, $py) = @queue.shift();
%cache{Set($x, $y)} = [$px, $py];
if $x == $y {
my @path;
You can’t perform that action at this time.