Skip to content
{{ message }}

Instantly share code, notes, and snippets.

# Hunter McMillen mcmillhj

Created Jan 22, 2020
Solution to casidoo's weekly interview question: is-factorial
View is-factorial.p6
 use experimental :cached; sub postfix:(Int:D \$n) { [*] 2..\$n; } multi sub is-factorial(0) { True } multi sub is-factorial(1) { True } multi sub is-factorial(Int:D \$n where * >= 2 --> Bool) { sub is-factorial-recursive(Int:D \$n, Int:D \$d --> Bool) is cached {
Created Nov 11, 2019
casidoo interview question: logic gates
View logic-gates.js
 "use strict"; // Using De Morgan's Law each of these logic gates can be implemented using one or more NAND gate. const nand = (p, q) => !(p && q); const not = p => nand(p, p); const and = (p, q) => not(nand(p, q)); const or = (p, q) => nand(nand(p, p), nand(q, q)); const nor = (p, q) => not(or(p, q)); const xor = (p, q) => nand(nand(p, nand(p, q)), nand(q, nand(p, q)));
Created May 22, 2018
View floyds-triangle.p6
 multi sub floyds-triangle(1 --> List) { 1 .. 1, } multi sub floyds-triangle(Int:D \$n where * > 1 --> List) { my \$nth-triangle-number = \$n * (\$n + 1) div 2; return floyds-triangle2(\$n - 1), \$nth-triangle-number - \$n ^.. \$nth-triangle-number; } say floyds-triangle(5); # (((((1..1) 1^..3) 3^..6) 6^..10) 10^..15
Last active May 4, 2018
Missing Block error on line 20
View stack.p6
 #!perl6 class Stack { has Int @!store; method push(Int:D \$elem --> Nil) { push @!store, \$elem; } method pop(--> Int) {
Last active Apr 30, 2018
Why does the below junction differ in result to the loop?
View junction.p6
 #!perl6 my @dates = , , , , , , , , , ; sub day (@date) { @date[1] } sub month (@date) { @date[0] } sub tell(\$data) { @dates.grep({ day(\$_) eq \$data or month(\$_) eq \$data }); }
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;
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 at line 1
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; }
Created Dec 6, 2017
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)
Created Oct 8, 2017
src/Accumulate.idr
View srcAccumulate.idr
 module Accumulate export accumulate : (a -> b) -> List a -> List b accumulate f [] = [] accumulate f (x::xs) = f x :: accumulate f xs