- Abramsky and Jung "Domain Theory" http://www.cs.bham.ac.uk/~axj/pub/papers/handy1.pdf
- Appel, Andrew "Modern Compiler Implementation in ML"
- Cousot, Patrick "Abstract Interpretation Based Formal Methods and Future Challenges" http://www.di.ens.fr/~cousot/publications.www/Cousot-LNCS2000-sv-sb.pdf
- Darais, Might, and Van Horn "Galois Transformers and Modular Abstract Interpreters" http://arxiv.org/pdf/1411.3962v1.pdf
- Davey and Priestley, "Introduction To Lattices and Order"
- Friedman and Mendhekar, "Using an Abstracted Interpreter to Understand Abstract Interpretation" http://www.cs.indiana.*du/l/www/classes/b621/abiall.pdf
- Friedman and Wand, "Essentials of Programming Languages"
- Jones and Nielson, "Abstract Interpretation: a Semantics-Based Tool for Program Analysis" http://se.inf.ethz.ch/courses/2014b_fall/sv/reading/jones-nielson.pdf
- Livshits, Sridharan, Smaragdakis, et. al. "In Defense of Soundiness: A Manifesto" http://cgi.di.uoa.gr/~smaragd/Soundiness-CACM.pdf
- Might, Matt "Writing an inte
This file contains hidden or 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
/** @jsx React.DOM */ | |
'use strict'; | |
var React = require('react'), | |
{ PropTypes } = React; | |
var AudioPlayer = React.createClass({ | |
propTypes: { | |
source: PropTypes.string.isRequired, | |
isPlaying: PropTypes.bool.isRequired, |
This file contains hidden or 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
// Usage example: | |
// | |
// willTransitionTo(transition, params, query, callback) { | |
// observeStore(DraftStore, s => s.isLoaded()).then(() => { | |
// if (DraftStore.isMissingTitle()) { | |
// transition.redirect('composeDraft', params); | |
// } | |
// }).finally(callback); | |
// } |
This file contains hidden or 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
'use strict'; | |
var React = require('react'), | |
PureRenderMixin = require('../mixins/PureRenderMixin'), | |
getSupportedTransformProperty = require('../utils/getSupportedTransformProperty'), | |
{ PropTypes, Children } = React; | |
const transformProperty = getSupportedTransformProperty(); | |
const styles = { | |
root: { |
This file contains hidden or 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
let BlogPostPage = React.createClass({ | |
render() { | |
<div> | |
<SiteNavigation /> | |
<MainContentArea> | |
{connectToStores({ | |
posts: store => ({ | |
post: store.getPost(this.props.postId), | |
nextPost: store.getPostAfter(this.props.postId) | |
}) |
This file contains hidden or 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
// store.js | |
let {store, handler} = sto(initialState, reduceFn); // where reduceFn: function(currentState, action, ...args){} | |
dispatcher.register(handler); | |
export store; | |
// elsewhere | |
store.get() // -> current state | |
store.toObservable() // -> to be used with .observe() |
This file contains hidden or 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
/** | |
* Stores are just seed + reduce function. | |
* Notice they are plain objects and don't own the state. | |
*/ | |
const countUpStore = { | |
seed: { | |
counter: 0 | |
}, | |
reduce(state, action) { |
This file contains hidden or 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 flattenTco = ([first, ...rest], accumulator) => | |
(first === undefined) | |
? accumulator | |
: (Array.isArray(first)) | |
? flattenTco([...first, ...rest]) | |
: flattenTco(rest, accumulator.concat(first)) | |
const flatten = (n) => flattenTco(n, []); | |
console.log(flatten([[1,[2,[[3]]]],4,[5,[[[6]]]]])) |
This file contains hidden or 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
// ------------ | |
// counterStore.js | |
// ------------ | |
import { | |
INCREMENT_COUNTER, | |
DECREMENT_COUNTER | |
} from '../constants/ActionTypes'; | |
const initialState = { counter: 0 }; |