Tidy advent-of-code directory
TL;DR: - Add README.md - Delete *.nix sketches - Delete *.pyc and *.ex python artifacts
This commit is contained in:
		
							parent
							
								
									444da4aa05
								
							
						
					
					
						commit
						b266378850
					
				
					 5 changed files with 4 additions and 76 deletions
				
			
		
							
								
								
									
										4
									
								
								advent-of-code/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								advent-of-code/README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					# 2019 Advent of Code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Here are my attempts at the 2019 Advent of Code challenge before my dedication
 | 
				
			||||||
 | 
					to the effort plummeted.
 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
with import <nixpkgs> {};
 | 
					 | 
				
			||||||
with python35Packages;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
buildPythonPackage {
 | 
					 | 
				
			||||||
  name = "wpcarro";
 | 
					 | 
				
			||||||
  src = ./day_5.py;
 | 
					 | 
				
			||||||
  propagatedBuildInputs = [ pytest numpy ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,50 +0,0 @@
 | 
				
			||||||
defmodule Interpretter do
 | 
					 | 
				
			||||||
  def interpret_param({mode, x}, xs) do
 | 
					 | 
				
			||||||
    case mode do
 | 
					 | 
				
			||||||
      :positional -> Enum.at(xs, x)
 | 
					 | 
				
			||||||
      :immediate  -> x
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Perhaps I can model the intepretter after Forth and make it a stack-based
 | 
					 | 
				
			||||||
  # interpretter with an emphasis on debugability, introspection.
 | 
					 | 
				
			||||||
  def interpret(i, xs) do
 | 
					 | 
				
			||||||
    stack = []
 | 
					 | 
				
			||||||
    op = Enum.at(xs, i)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # map instructions into an intermediate representation (i.e. IR) where the
 | 
					 | 
				
			||||||
    # opcodes are mapped into atoms and the arguments are mapped into references
 | 
					 | 
				
			||||||
    # or literals.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    instructions =
 | 
					 | 
				
			||||||
      %{'01' => :add,
 | 
					 | 
				
			||||||
        '02' => :multiply,
 | 
					 | 
				
			||||||
        '03' => :input,
 | 
					 | 
				
			||||||
        '04' => :output,
 | 
					 | 
				
			||||||
        '05' => :jump_if_true,
 | 
					 | 
				
			||||||
        '06' => :jump_if_false,
 | 
					 | 
				
			||||||
        '07' => :less_than,
 | 
					 | 
				
			||||||
        '08' => :equal_to,
 | 
					 | 
				
			||||||
        '99' => :return}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    case xs do
 | 
					 | 
				
			||||||
      [:add, a, b, {:positional, out} | rest] ->
 | 
					 | 
				
			||||||
        a = interpret_param(a, xs)
 | 
					 | 
				
			||||||
        b = interpret_param(b, xs)
 | 
					 | 
				
			||||||
        Interpretter.interpret(i + 3, List.insert_at(xs, out, a + b))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      [:multiply, a, b, {:positional, out} | rest] ->
 | 
					 | 
				
			||||||
        a = interpret_param(a, xs)
 | 
					 | 
				
			||||||
        b = interpret_param(b, xs)
 | 
					 | 
				
			||||||
        Interpretter.interpret(i + 3, List.insert_at(xs, out, a * b))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      [:input, a | rest] -> nil
 | 
					 | 
				
			||||||
      [:output, a | rest] -> nil
 | 
					 | 
				
			||||||
      [:jump_if_true, a, b | rest] -> nil
 | 
					 | 
				
			||||||
      [:jump_if_false, a, b | rest] -> nil
 | 
					 | 
				
			||||||
      [:less_than, a, b, out | rest] -> nil
 | 
					 | 
				
			||||||
      [:equal_to, a, b, out | rest] -> nil
 | 
					 | 
				
			||||||
      [:return | _rest] -> nil
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
{ pkgs ? import <nixpkgs> {}, ... }:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{ name, deps, src }:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  inherit (pkgs) pythonPackages writeTextFile;
 | 
					 | 
				
			||||||
  inherit (builtins) toFile;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
in writeTextFile {
 | 
					 | 
				
			||||||
  inherit name;
 | 
					 | 
				
			||||||
  executable = true;
 | 
					 | 
				
			||||||
  destination = "/bin/${name}";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  text = ''
 | 
					 | 
				
			||||||
    #!/bin/sh
 | 
					 | 
				
			||||||
    ${pkgs.python3}/bin/python3 ${src}
 | 
					 | 
				
			||||||
  '';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue