Skip to content

Instantly share code, notes, and snippets.

View TheSeamau5's full-sized avatar

Hassan Hayat TheSeamau5

  • Entrepreneur
  • Austin, TX
View GitHub Profile
@TheSeamau5
TheSeamau5 / n_queens.py
Created September 25, 2016 23:41
N Queens in Python
#!usr/bin/python
from itertools import permutations
def n_queens(n):
cols = range(n)
for vec in permutations(cols):
if n == len(set(vec[i] + i for i in cols)) and n == len(set(vec[i] - i for i in cols)):
print("\n".join('.' * i + 'Q' + '.' * (n - i - 1) for i in vec) + "\n===\n")
@TheSeamau5
TheSeamau5 / swipepageselm.elm
Last active September 20, 2016 08:10
Swipeable Pages in Elm
import Html exposing (Html)
import Html.Attributes
import Html.Events
import Mouse
import Signal exposing (Signal, Address)
import StartApp
import Json.Decode exposing ((:=))
import List
@TheSeamau5
TheSeamau5 / makeRunner.js
Last active September 20, 2016 04:25
Runner Generator (useful to generate different runners depending on the platform)
// makeRunner : (renderer : ReactComponent -> ())
// -> (update : s -> a -> s, render : s -> Dispatcher a -> ReactComponent, observable : Observable a)
// -> ()
export const makeRunner = (renderer) => (update, render, observable) => {
const store = createStore(update);
const renderApp = () => renderer(render(store.getState(), store.dispatch));
renderApp();
@TheSeamau5
TheSeamau5 / runner.js
Created September 20, 2016 04:14
Runner that takes an update and a render function and runs an app (optionally takes an observable)
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { createStore } from 'redux';
import Rx from 'rx';
// run : (update: s -> a -> s, render: s -> Dispatcher a -> Html, observable: Observable a, root: String)
export const run = (update, render, observable, root='root') => {
const store = createStore(update);
const renderApp = () => {
@TheSeamau5
TheSeamau5 / shuffleList.elm
Created January 18, 2015 02:11
Function to shuffle a list (useful to shuffle cards for example)
import List (..)
import Random (..)
import Text (asText)
shuffle : List a -> List a
shuffle lt =
let len = length lt
fgen = float 0 1
lgen = list len fgen
rlist = fst <| generate lgen (initialSeed 31415)
powerSet : String -> List String
powerSet =
String.words
>> List.foldr (\x acc -> acc ++ List.map ((::) x) acc) [[]]
>> List.map (String.join " ")
>> List.filter ((/=) "")
import Signal exposing (Address)
import Html exposing (Html, button, text, div)
import Html.Events exposing (onClick)
import StartApp.Simple as StartApp exposing (start)
type alias State =
{ counter : Int }
@TheSeamau5
TheSeamau5 / uniform-distribution-from-3-dice.elm
Created April 20, 2016 00:49
Make uniform distribution from 3 dice
import Random exposing (Generator, Seed)
import Signal exposing (Signal)
import Graphics.Element exposing (Element, show, flow, down)
import Time exposing (Time)
import String
import List
die : Generator Int
die =
@TheSeamau5
TheSeamau5 / selection-list.js
Created April 19, 2016 18:06
Selection List in Javascript using Immutable
import Immutable from 'immutable';
/* Selection List Data Structure */
class SelectionList {
constructor(list) {
if (list.length > 0) {
this._previous = new Immutable.Stack();
this._selected = list[0];
this._next = new Immutable.Stack(list.splice(1));
/*
* type Definition = {
* kind: String,
* name: String,
* properties: [Property]
* }
*
* type Property = {
* key: String,
* value: [String]