View regexequiv.hs
module Main where | |
-- Takes two arguments in a limited regex-like language, and tells if | |
-- they are equivalent. This equivalence is shown by either saying | |
-- "there is no string which matches one regex but not the other" or | |
-- by giving a string which matches one but not the other. | |
-- Prints out: | |
-- First arg. parsed | |
-- Second arg. parsed |
View aoc23_2attempt5.py
# AOC 2018 day 23 solution to defeat adversarial input (python3) | |
# Adversarial input sample can be found https://pastebin.com/raw/9eJQN836 | |
# This will try to open the file given as the first command line argument | |
# or "aoc23.in.txt" if no argument is given. | |
# This solution transforms the given coordinates in x-y-z space into 4D | |
# coordinates in a space I call s-t-u-v space, even though I never actually | |
# deal with 's', 't', 'u', or 'v' directly. | |
import itertools |
View RunTM.hs
-- This is the first Haskell program of any complexity that I ever wrote, back in October 2005, | |
-- updated (with newer imports and one changed function name) to run on modern (c. 2017) | |
-- GHC. It was designed to solve a perl quiz of the week problem to write a Turing | |
-- Machine emulator. Unfortunately, that mailing list has been defunct for so long that | |
-- all archives seem to have vanished from the web so I can't point to documentation of | |
-- the format. I can however point to one program I wrote in the Turing Machine language | |
-- that solved the prior quiz-of-the-week: given a number N, print out all strings | |
-- consisting of N '(' characters and N ')' characters such that the parens in the | |
-- resulting string are balanced. | |
-- |
View Collatz.hs
-- SPOILER for project euler #14 | |
-- Really, you should go do it yourself. | |
View util.hs
import qualified Data.Map.Strict as M | |
-- The code in any functions here should be too small to really be coverable by copyright, but just in case: | |
{- | |
Copyright 2014 Daniel Martin | |
I, Daniel Martin, license this to you under the Apache License, Version 2.0 (the | |
"License"); you may not use this file except in compliance | |
with the License. You may obtain a copy of the License at |
View LensBuilder.hs
{-# LANGUAGE TemplateHaskell #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE RankNTypes #-} | |
{-# LANGUAGE Arrows #-} | |
{- Some ideas on the common Builder pattern from the OO world in the context of lenses -} | |
module Main where | |
View LensHXTPickle.hs
{-# LANGUAGE TemplateHaskell #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE RankNTypes #-} | |
{- A little demonstration of HXT and Lenses -} | |
module Main where | |
import Control.Arrow |