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 React from 'react'; | |
class PipeDriveForm extends React.Component { | |
constructor(props) { | |
super(props); | |
this.state = { | |
randomId: 'id' + Math.random().toString(36).substring(7) | |
}; | |
} |
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
const getDSLValue = (iterator, last) => { | |
const {value, done} = iterator.next(last); | |
if (done) { | |
return value.slice(1).reduce((x, f) => f(x), value[0]); | |
} | |
return getDSLValue(iterator, last ? [...last, value] : [value]); | |
} | |
const pipe = gen => getDSLValue(gen(null, )); | |
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
const getDSLValue = (iterator, last) => { | |
const {value, done} = iterator.next(last); | |
if (done) { | |
return value; | |
} | |
switch (value) { | |
case 'sword': { | |
return getDSLValue(iterator, { | |
weaponType: "Shiny Sword", |
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
const interpret = iterator => last => { | |
const {value, done} = iterator.next(last); | |
return (done) ? Promise.resolve(value) : value.then(interpret(iterator)); | |
}; | |
const asyncAwait = g => interpret(g())(); | |
// ... Usage ... | |
const addOneSoon = (x, t) => new Promise(resolve => { |
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
const { | |
parse, | |
char, | |
many, | |
regex, | |
anythingExcept, | |
sepBy | |
} = require('arcsecond'); | |
const joinedMany = parser => many (parser) .map(x => x.join('')); |
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
const { | |
between, | |
many, | |
choice, | |
sequenceOf, | |
char, | |
whitespace, | |
anythingExcept, | |
possibly, | |
regex, |
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
const { parse, char, str, sequenceOf, choice } = require('arcsecond'); | |
// parse creates a function we can use for parsing text | |
const parseText = parse (combinedParser); | |
console.log( | |
parseText ('hello world') | |
) | |
// -> [ 'hello', ' ', 'world' ] |
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
const ArrayMonad = xs => { | |
const map = fn => ArrayMonad(xs.map(x => fn(x))) | |
const chain = fn => ArrayMonad(xs.reduce((ys, x) => [...ys, ...fn(x).xs], [])) | |
const ap = mys => chain(f => mys['fantasy-land/map'](y => f(y))); | |
return { | |
xs, | |
'fantasy-land/map': map, | |
'fantasy-land/chain': chain, | |
'fantasy-land/ap': ap, | |
'constructor': ArrayMonad |
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 React from 'react'; | |
export class StateDispatcher extends React.Component { | |
constructor(props) { | |
super(props); | |
this.state = props.state || {}; | |
this._dispatch = this.dispatch.bind(this); | |
} | |
dispatch(action) { |
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
class HashTable { | |
constructor(bucketSize = 1024) { | |
this._bucketSize = bucketSize; | |
this._data = new Array(bucketSize); | |
} | |
hashKey(key) { | |
const h = JSON.stringify(key, Object.keys(key).sort()) | |
.split('') | |
.reduce((acc, cur, i) => acc + cur.charCodeAt(0) * (i+1), 0); |