Skip to content

Instantly share code, notes, and snippets.

View L8D's full-sized avatar

Tenor L8D

View GitHub Profile
@L8D
L8D / zt.js
Last active August 29, 2015 14:05
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define(zt);
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
root.zt = factory();
}
})(this, function() {
var zt = function(tag) {
@L8D
L8D / zync.js
Last active August 29, 2015 14:06
;(function(root, factory) {
if (typeof define === 'function') {
define(factory);
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
root.Zync = root.$ = factory();
}
})(this, function() {
function fromMarkup(markup) {
@L8D
L8D / thing.hs
Last active August 29, 2015 14:06
-- How I should be able to define a model
tasks :: [a] -> Either a a -> [a]
tasks ts = either (:ts) (`delete` ts)
-- How I should be able to define an event stream
eventStream = scanl tasks . map (Left . getValue . getTarget) . filter ((== 13) . getWhich)
main = someWayToSelectElementAndMakeEventStreams "#input-box" "keydown"
>>= eventStream
>>= mapM renderMyList
@L8D
L8D / rl.hs
Last active August 29, 2015 14:06
Function{al,ing} RL interpreter written in Haskell
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE TupleSections #-}
import System.Environment (getArgs)
import System.Exit (ExitCode(..), exitWith)
import Data.Maybe (listToMaybe, fromMaybe)
import Data.Fixed (mod', div')
showDouble :: Double -> String
showDouble n = if n `mod'` 1 == 0 then show (n `div'` 1) else show n
@L8D
L8D / rl.js
Created September 13, 2014 06:52
RL Interpreter in JavaScript...Because FUN
(function(root, factory) {
if (typeof define === 'function') {
define(factory);
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
root.RL = factory();
}
})(this, function() {
var run = function(code, stack, dict) {
@L8D
L8D / data.js
Last active August 29, 2015 14:06
The 'Data' monad/tuple thingy in JavaScript
var Data = function(first, second, third, fourth, fifth, sixth, seventh) {
return function(iterator) {
return iterator(first, second, third, fourth, fifth, sixth, seventh);
};
};
// or more elegantly
var Data = function(a, b, c, d, e, f, g) {
return function(fn) {
return fn(a, b, c, e, f, g);
@L8D
L8D / things.js
Last active August 29, 2015 14:06
things
function Tuple(a, b, c, d, e, f, g) {
function tuplable(transformer) {
return transformer(a, b, c, d, e, f, g);
};
tuplable.toString = function() {
return 'Tuple (' + [a, b, c, d, e, f, g].filter(function(item) {
return item != null;
}).join(', ') + ')';
};
@L8D
L8D / server.js
Created September 23, 2014 02:35
var parser = require('body-parser')
, config = require('./config')
, express = require('express')
, morgan = require('morgan')
, _ = require('lodash')
, path = require('path')
;
var app = module.exports = express();
@L8D
L8D / rxreact.js
Created September 24, 2014 07:58
var Game = React.createClass({
render: function() {
var x = this.props.x,
y = this.props.y;
return (
<svg width={Math.max(x + 10, 200)} height={height: Math.max(y + 10, 200)}>
<circle cx={50} cy={50} r={2} fill="#000" />
<circle cx={x} cy={y} r={2} fill="#000" />
<line x1={50} y1={50} x2={x} y2={y} stroke="#000" />
@L8D
L8D / fun.js
Created October 10, 2014 05:39
Basic Church-encoded data structures written in lazy-evaluable JavaScript
function compose(f) {
return function(g) {
return function(x) {
return f(g(x));
};
};
}
// allTheNumbersFrom(Zero) -> 0, 1, 2, 3...
function allTheNumbersFrom(number) {