// @flow
// based on State Machines All The Way Down
// An Architecture for Dependently Typed Applications
// https://eb.host.cs.st-andrews.ac.uk/drafts/states-all-the-way.pdf
// by Edwin Brady
//
// finite state machine
// @flow | |
// | |
// library agnostic types and helpers | |
// | |
// keep private | |
class Unit<A> {} | |
class IsMedia {} |
Lightning Talk proposal for ReactiveConf 2017 http://www.reactiveconf.com #ReactiveConf
Elm is a statically-typed functional programming language. Its compiler produces safe JavaScript which is guaranteed to be free of runtime exceptions. Moreover Elm is packed with a bunch of powerful abstractions which let us build visual and reactive Web applications in a few lines of code.
As an example, I show the implementation of a simple framework for building Prezi-like presentations. It's just 99 lines of code!
/** | |
* Making promises | |
*/ | |
let okPromise = Js.Promise.make((~resolve, ~reject as _) => [@bs] resolve("ok")); | |
/* Simpler promise creation for static values */ | |
Js.Promise.resolve("easy"); | |
Js.Promise.reject(Invalid_argument("too easy")); |
Reason Workshop @ReactiveConf 2017
by: Sean Grove, Jared Forsyth, Daniel Woelfel
support team: Cristiano Calcagno, @reasonvienna - @ryyppy @svensauleau @cezarneaga and @nikgraf in spirit, @matystl, @MyNaartjie
Support and Questions: Join discord channel
- workshop flow and exercises
Replace {domain}
with your domain:
# Allows you to receive email at standard addresses, e.g. user@{domain}.
now dns add {domain} @ MX in1-smtp.messagingengine.com 10
In this talk we will be all discussing the origin of the furry fandom. How we will thogheter create a new furry-in-js framework. We will going over how they have changed the current fandom world, our hearts and the js world in 5 very awesome minutes! This talk is to prove a point that stars mean nothing in this case.
/* | |
Let's Assume we want to have a Functor which creates a new Module from | |
a specific Component Model | |
The Functor recieves another Module named `Component`, which needs to satisfy certain constraints: | |
- Component requires an abstract type t (no matter what concrete type) | |
- It also needs to implement a `render` function which gets said type t and returns a `string` | |
Also, the newly created module will then contain a function `doSomething`, which will handle any | |
instance of `Component.t`. So our `Component` also will need a function to create an instance for that, |