This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE TemplateHaskell #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE RankNTypes #-} | |
{- A little demonstration of HXT and Lenses -} | |
module Main where | |
import Control.Arrow |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# 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 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- SPOILER for project euler #14 | |
-- Really, you should go do it yourself. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 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. | |
-- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# OPTIONS_GHC -Wall #-} | |
module Main (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. | |
-- (i.e. if the distinguishing string is Just "blah", then the regexes | |
-- aren't equivalent and onw matches "blah" and the other doesn't. If the |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- stack --resolver lts-18.18 script --package pqueue --package aeson --package containers | |
{-# LANGUAGE Haskell2010 #-} | |
{-# OPTIONS_GHC -Wall -O2 #-} | |
import Data.Aeson | |
import Data.List | |
import Data.Map (Map) | |
import qualified Data.Map as M | |
import qualified Data.PQueue.Max as MQ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
''''test x != "-*- mode: python -*-" | |
case "`python --version 2>/dev/null`" in | |
[Pp]"ython 3"*) exec python "$0" "$@" ;; | |
esac | |
case "`python3 --version 2>/dev/null`" in | |
[Pp]"ython 3"*) exec python3 "$0" "$@" ;; | |
esac | |
case "`py -3 --version 2>/dev/null`" in | |
[Pp]"ython 3"*) exec py -3 "$0" "$@" ;; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--------------------------- MODULE Nim --------------------------- | |
EXTENDS TLC, Sequences, Integers, FiniteSets | |
CONSTANTS INITIAL_PILES, HUMAN_STARTS | |
(* | |
--algorithm Nim | |
\* An n-pile version of Nim with the rules: | |
\* * Take as much as you want, but only from one pile |
OlderNewer