Skip to content

Instantly share code, notes, and snippets.

Avatar

Erwin Poeze donnut

View GitHub Profile
View gist:38a090b2bce02dafbba134e088c3b9fc

Moving to ES6 from CoffeeScript

I fell in love with CoffeeScript a couple of years ago. Javascript has always seemed something of an interesting curiosity to me and I was happy to see the meteoric rise of Node.js, but coming from a background of Python I really preferred a cleaner syntax.

In any fast moving community it is inevitable that things will change, and so today we see a big shift toward ES6, the new version of Javascript. It incorporates a handful of the nicer features from CoffeeScript and is usable today through tools like Babel. Here are some of my thoughts and issues on moving away from CoffeeScript in favor of ES6.

While reading I suggest keeping open a tab to Babel's learning ES6 page. The examples there are great.

Punctuation

Holy punctuation, Batman! Say goodbye to your whitespace and hello to parenthesis, curly braces, and semicolons again. Even with the advanced ES6 syntax you'll find yourself writing a lot more punctuatio

View NER.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@donnut
donnut / unions.ts
Created Feb 9, 2015
unions and type guard
View unions.ts
interface IMessage {
name: string;
}
function itemFn(pipIn: string[]) {
return pipIn;
}
function baseFn(pipIn: string) {
return [pipIn];
@donnut
donnut / index.js
Last active Aug 29, 2015
requirebin sketch
View index.js
var R = require('ramda');
var data = [
{it: 'item2', signal: 'update', select: true},
{it: 'item1', signal: 'update', select: false}
]
console.log(R.contains({it: 'item2', signal: 'update', select: true}, data));
@donnut
donnut / currying.md
Last active Apr 29, 2022
TypeScript and currying
View currying.md

TypeScript and currying

In functional programming you often want to apply a function partly. A simple example is a function add. It would be nice if we could use add like:

var res2 = add(1, 3); // => 4

var add10To = add(10);
var res = add10To(5); // => 15
@donnut
donnut / mapping.md
Last active Aug 29, 2015
TypeScript and mapping
View mapping.md

Typescript and mapping

Map takes a function and maps the content of a list to another list of the same length. We want to double the numbers in a list, using the function doubler

function doubler(x) {
    return x*2;
}
@donnut
donnut / index.js
Last active Aug 29, 2015
requirebin sketch
View index.js
var R = require('ramda').installTo(this)
var a = {}
var b = {y: a}
var c = {z: b}
a.x = c
var refFrom = []
var refTo = []
@donnut
donnut / index.js
Last active Aug 29, 2015
requirebin sketch
View index.js
// circular reference
var _ = require('lodash')
var c = {x:2}
var a = {x:3, c: c}
var b = {x:1, z: a}
c.p = b
var a1 = _.cloneDeep(a)
b.x = 5
@donnut
donnut / index.js
Created Oct 6, 2014
requirebin sketch
View index.js
var R = require('ramda');
function Maybe(x) {
if (!(this instanceof Maybe)) {
return new Maybe(x);
}
this.value = x;
}
Maybe.of = function(x) {
@donnut
donnut / index.js
Created Oct 6, 2014
requirebin sketch
View index.js
var R = require('ramda');
function Maybe(x) {
if (!(this instanceof Maybe)) {
return new Maybe(x);
}
this.value = x;
}
Maybe.of = function(x) {