I hereby claim:
- I am francisrstokes on github.
- I am francisstokes (https://keybase.io/francisstokes) on keybase.
- I have a public key ASDAQWguSwFKdWeKeEvEeTyzezi0na5Pmhdva4wN2Cwj4wo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| import React from 'react'; | |
| class PipeDriveForm extends React.Component { | |
| constructor(props) { | |
| super(props); | |
| this.state = { | |
| randomId: 'id' + Math.random().toString(36).substring(7) | |
| }; | |
| } |
| 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, )); | |
| const getDSLValue = (iterator, last) => { | |
| const {value, done} = iterator.next(last); | |
| if (done) { | |
| return value; | |
| } | |
| switch (value) { | |
| case 'sword': { | |
| return getDSLValue(iterator, { | |
| weaponType: "Shiny Sword", |
| 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 => { |
| const { | |
| parse, | |
| char, | |
| many, | |
| regex, | |
| anythingExcept, | |
| sepBy | |
| } = require('arcsecond'); | |
| const joinedMany = parser => many (parser) .map(x => x.join('')); |
| const { | |
| between, | |
| many, | |
| choice, | |
| sequenceOf, | |
| char, | |
| whitespace, | |
| anythingExcept, | |
| possibly, | |
| regex, |
| 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' ] |
| 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 |
| 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) { |