récuperer le react transform boilerplate. => workflow hot swaping trop cool ;)
git clone https://github.com/gvergnaud/prez-react.git TutoReact
npm install
npm start
import { compose, curry, map } from 'ramda' | |
import Const, { getConst } from './functors/Const' | |
import Identity, { runIdentity } from './functors/Identity' | |
import K from './functors/K' | |
/* ----------------------------------------- * | |
Lenses définition | |
* ----------------------------------------- */ |
export default class Const { | |
constructor(v) { | |
this.value = v | |
} | |
static of(v) { | |
return new Const(v) | |
} |
export default class Identity { | |
constructor(v) { | |
this.value = v | |
} | |
static of(v) { | |
return new Identity(v) | |
} |
/* ----------------------------------------- * | |
Learning Machin Learning | |
* ----------------------------------------- */ | |
// gradientDescent for the square error function and a Theta of Two parameter (a, b) | |
// Theta :: [Number, Number] | |
// sum :: (a -> Int) -> List a -> Int | |
const sum = (transformer, list) => | |
list.reduce((acc, item) => acc + transformer(item), 0) |
/* ----------------------------------------- * | |
Learning Machin Learning | |
* ----------------------------------------- */ | |
import { compose, map, chain, range } from 'ramda' | |
// Result = { a :: Int, b :: Int, cost :: Number } | |
// Data = [Int, Int] | |
// Tupple = [Int, Int] | |
// findBestResult :: [Result] -> Result |
/* ----------------------------------------- * | |
Learning Machin Learning | |
* ----------------------------------------- */ | |
// gradientDescent of the square error function for a Theta of any number of | |
// parameters | |
// multiplyVectors :: List number -> List number -> number | |
const multiplyVectors = (xs, ys) => | |
xs.reduce((acc, x, i) => acc + x * ys[i], 0) |
/* ------------------------------------------------------------------------- * | |
Async / Await simple implementation with generators and promises | |
* -------------------------------------------------------------------------- */ | |
const wrap = generator => (...args) => { | |
const iterator = generator(...args) | |
const loop = ({ value: promise, done }) => { | |
if (!done) { | |
promise.then( | |
x => loop(iterator.next(x)), |
import React, { Component } from 'react' | |
import isEqual from 'lodash/fp/isEqual' | |
// let you inject local state to you component | |
const stateful = (mapPropsToInitialState = () => ({})) => Child => { | |
return class StateFul extends Component { | |
static displayName = `StateFul(${Child.displayName || Child.name})` |
/* ----------------------------------------- * | |
Sum | |
* ----------------------------------------- */ | |
const Sum = x => ({ | |
x, | |
concat: ({ x: y }) => Sum(x + y), | |
inspect: () => `Sum(${x})`, | |
}) |