Skip to content

Instantly share code, notes, and snippets.

View amnn's full-sized avatar

Ashok Menon amnn

  • London, United Kingdom
  • 05:38 (UTC +01:00)
View GitHub Profile
@amnn
amnn / brainfuck.clj
Created March 10, 2015 22:34
Brainfuck interpreter written in Clojure
(ns brainfuck
(:refer-clojure :exclude [replace])
(:require [clojure.string :refer [join replace]]))
;;;;;; Parser ;;;;;;
(defn- wrap-outer-brackets
"Wrap string in square brackets so that its contents are read into a vector
by `read-string`."
[s] (str \[ s \]))
@amnn
amnn / earley.clj
Created October 9, 2014 15:36
Earley Parser in Clojure (Some helper functions are missing).
(defn recogniser
"Returns the recogniser function for the grammar `g`."
[g]
(let [nullable? (nullable g)
g (null-free g)
init (initial-state (nullable? :S))]
(letfn [(consume-token [{:keys [index items] :as state} tok]
(loop [processed? #{}
items items
state (reset-state state)]
require 'set'
class AnagramDict
include Enumerable
def initialize
@dict = {}
end
def put(word)
@amnn
amnn / Undo.hs
Last active December 19, 2015 10:29
Dirty Buffer Indicator with Undo/Redo support.
module Undo where
data Op = Edit | Undo | Redo | Load | Save deriving (Eq, Show)
type Str = [Op]
type State = (Int, Int, Int) -- ( Save point, Edit distance, Undo displacement )
valid :: State -> Bool
valid (s,e,u) = s >= 0 && e >= 0 && u <= 0 && s <= e && e+u >= 0
@amnn
amnn / bar.cpp
Created March 2, 2013 18:48
Solution to Facebook Programming Challenge Bar Game
#include <iostream>
#include <set>
using namespace std;
typedef pair<int,int> pii;
void game();
int main( int , char ** )
{
@amnn
amnn / unnamed.rb
Created November 18, 2011 07:32
Syntax highlight test
class Matrix
end
(defvar *prime* (list 2))
(setf count 3)
(defun is-prime (n)
(dolist (prime-number *prime*)
(if (= n 1) (return-from is-prime nil))
(if (= (mod n prime-number) 0)
(return-from is-prime nil)))
(return-from is-prime t))
//
// mapEngine.m
// TestRun
//
// Created by Ashok Menon on 20/08/2010.
// Copyright 2010 __MyCompanyName__. All rights reserved.
//
#import "mapEngine.h"
#import "ImageCache.h"