Skip to content

Instantly share code, notes, and snippets.

View utaal's full-sized avatar

Andrea Lattuada utaal

View GitHub Profile
extern crate timely;
use std::rc::Rc;
use std::cell::RefCell;
use timely::dataflow::InputHandle;
use timely::dataflow::operators::{Input, Exchange, Inspect, Probe, Map};
fn main() {
// initializes and runs a timely dataflow.
timely::execute_from_args(std::env::args(), |worker| {
@utaal
utaal / ADT.scala
Last active November 16, 2016 13:18
sealed abstract trait ADT
case object One extends ADT
case object Two extends ADT
case class Circle(radius: Double)
trait HasArea[A] {
def area(a: A): Double
}
implicit val `HasArea for Circle` = new HasArea[Circle] {
def area(circle: Circle): Double = Math.PI * Math.pow(circle.radius, 2)
}
trait Logic<D> {
// ...
}
impl<D, F> Logic<D> for F where F: FnMut(D) {
// ...
}
// ...
impl<D> Container<D> {
@utaal
utaal / output
Created September 29, 2015 18:38
scalahost 0.3.0 plugin fails on non/cats
[trace] Stack trace suppressed: run last macrosJS/compile:compileIncremental for the full output.
[trace] Stack trace suppressed: run last macrosJVM/compile:compileIncremental for the full output.
[error] (macrosJS/compile:compileIncremental) scala.meta.internal.hosts.scalac.converters.ConvertException: unexpected tree during scala.reflect -> scala.meta conversion:
[error] Import(Select(Ident(scala), scala.reflect), List(ImportSelector(TermName("NameTransformer"), 50, TermName("NameTransformer"), 50)))
[error] (PackageDef) package macros { import scala.reflect.NameTransformer; o...
[error] (PackageDef) package cats { package macros { import scala.reflect.N...
[error] (macrosJVM/compile:compileIncremental) scala.meta.internal.hosts.scalac.converters.ConvertException: unexpected tree during scala.reflect -> scala.meta conversion:
[error] Import(Select(Ident(scala), scala.reflect), List(ImportSelector(TermName("NameTransformer"), 50, TermName("NameTransformer"), 50)))
[error] (PackageDef) package macro
project/target/
target/
@utaal
utaal / experiment.js
Last active August 29, 2015 14:22
promise scheduler (gcanti/fetch-optimizer)
// run with: node --harmony experiment.js
var R = require('ramda');
var PromiseScheduler = (function() {
function PromiseScheduler() {
this.nodes = {};
}
PromiseScheduler.prototype.add = function(id, fetcher, dependencies) {
this.nodes[id] = {
@utaal
utaal / iff.js
Created December 29, 2014 21:40
sweet.js if expression macro
macro iff {
rule {
($x:expr) {
$truebody
...
$truelast:expr
} els {
$falsebody
...
$falselast:expr