Skip to content

Instantly share code, notes, and snippets.

View giltayar's full-sized avatar

Gil Tayar giltayar

View GitHub Profile
case class JsonableEither[+L, +R](left: Option[L] = None, right: Option[R] = None) {
require(left == None && right != None ||
left != None && right == None)
}
@giltayar
giltayar / naive-iteration.js
Last active January 24, 2017 07:22
Unicode String Iteration Article Sample Code
function stringToArray(s) {
const retVal = [];
for (let i = 0; i < s.length; ++i) {
retVal.push(s[i]);
}
return retVal;
}
console.log(stringToArray('Robin H😀😀d'));
console.log(stringToArray('Robin Hoווd'));
const str = 'H😀😀d';
const iterator = str[Symbol.iterator](); // get the iterator from string
iterator.next(); // skip over the 'H'
console.log(iterator.next().value); // get the first emoji
function stringToArray(s) {
const retVal = [];
for (const ch of s) {
retVal.push(ch);
}
return retVal;
}
console.log(Array.from('Robin H😀😀d').map(ch => ch == '😀' ? '🙃' : ch));
console.log(Array.from('Robin H😀😀d').map(ch => ch == '😀' ? '🙃' : ch).join(''));
exports.writeSumToFile = (a, b, fileSumWriter) => {
const sum = a + b
fileSumWriter(sum)
}
@giltayar
giltayar / test-calculator.js
Created February 9, 2017 17:09
Parts of the calculator module unit test
const {describe, it} = require('mocha')
const {expect} = require('chai')
const calculator = require('../../lib/calculator')
describe('calculator', function () {
const stream = (characters, calculatorState = calculator.initialState) =>
!characters
? calculatorState
: stream(characters.slice(1),
calculator.nextState(calculatorState, characters[0]))