Skip to content

Instantly share code, notes, and snippets.

data List a =
Empty |
Cons a (List a)
deriving (
Eq,
Ord
)
-- Type classes are pretyy cool
@bradparker
bradparker / map.md
Last active April 20, 2016 03:46
Map
const map = (fn, arr) => {
  if (!arr.length) return []
  const [head, ...tail] = arr
  return [fn(head, ...map(fn, tail)]
}
map :: (a -> b) -> [a] -> [b]
@bradparker
bradparker / excludeParents.js
Last active May 11, 2016 13:00
Exclude parent dirs
const assert = require('assert')
const isEqual = (a, b) => {
if (a.length !== b.length) return false
return a.every((aElem, index) => aElem === b[index])
}
// flip :: (a -> b -> c) -> (b -> a -> c)
const flip = (f) => (a, b) => f(b, a)
@bradparker
bradparker / task.js
Last active May 15, 2016 10:33
Task
const fetch = require('node-fetch')
const Task = require('data.task')
const KEY = 'KEY!'
const asteroidRequest = new Task((reject, resolve) => (
fetch(`https://api.nasa.gov/neo/rest/v1/feed?start_date=2016-05-05&end_date=2016-05-05&api_key=${KEY}`)
.then((res) => res.json())
.then(resolve)
.catch(reject)
@bradparker
bradparker / mutator.js
Created October 13, 2016 01:09
Mutator
const { keys, assign } = Object
const exampleSource = {
first_name: 'Bob',
last_name: 'Boberson',
charity_1: '1',
charity_2: '2',
charity_3: '3'
}
@bradparker
bradparker / use.md
Last active October 26, 2016 08:53
Currying is ok I guess
> const curry = require('./curry')
> const add3 = (a, b, c) => a + b + c
> add3(1, 2, 3)
6
> const curAdd3 = curry(add3)
> curAdd3(1)
[Function]
> curAdd3(1, 2)
[Function]
@bradparker
bradparker / pipeline.js
Last active November 17, 2016 05:51
Promise pipeline with context object...
const { assign } = Object
const mergeResults = (pipeline, step) => (
pipeline.then((context) => (
step(context).then((result) => (
assign({}, context, result)
))
))
)
@bradparker
bradparker / flat-map.js
Created January 3, 2017 04:50
Flat Map
const flatMap = (array, func) => (
array.reduce((result, element) => (
result.concat(func(element))
), [])
)
@bradparker
bradparker / hank.hs
Last active January 26, 2017 23:18
hank
module Main where
import System.IO
import Control.Concurrent
import Control.Concurrent.STM
type Error = String
data Payload
= Increment
const URL = require('url')
const QS = require('qs')
const { createElement } = require('react')
const { renderToString } = require('react-dom/server')
const { createServer } = require('http')
const logger = require('connect-logger')
const connect = require('connect')
const components = require('./components')