Skip to content

Instantly share code, notes, and snippets.

View Tombarr's full-sized avatar
:octocat:
Coding

Tom Barrasso Tombarr

:octocat:
Coding
View GitHub Profile
@Tombarr
Tombarr / array_case.ex
Created January 19, 2019 23:12
Case statement with arrays in Elixir
case [1, 2, 3] do
[1, 2, 4] -> false
[a, 2, 3] -> true
_ -> true # default condition
end
@Tombarr
Tombarr / function.js
Last active January 19, 2019 23:13
Simple named function in Javascript
function addTen(x) {
return x + 10;
}
// You can also assign an arrow functions to a variable
const addTen = (x) => x + 10;
addTen(10); // 20
@Tombarr
Tombarr / function.ex
Last active January 19, 2019 23:16
Functions and lambdas in Elixir
def add_ten(x) do
x + 10
end
add_five = fn x -> x + 5 end
add_two = &(&1 + 2)
add_ten(10) # 20
add_five.(10) # 15
add_two.(10) # 12
@Tombarr
Tombarr / default_args.js
Created January 19, 2019 23:20
Javascript default function arguments
const addTen = (x = 10) => {
return x + 10;
};
addTen(); // 20
@Tombarr
Tombarr / default_args.ex
Created January 19, 2019 23:21
Default function arguments in Elixir
def add_ten(x \\ 10) do
x + 10
end
add_ten() # 20
@Tombarr
Tombarr / function_passing.js
Created January 19, 2019 23:22
Functions as arguments in Javascript
const addTen = (x) => x + 10;
const doAThingToX = (thing, x) => thing(x);
doAThingToX(addTen, 10); // 20
@Tombarr
Tombarr / function_passing.ex
Created January 19, 2019 23:22
Functions as arguments in Elixir
add_ten = fn (x) -> x + 10 end
do_a_thing_to_x = fn (thing, x) ->
thing.(x)
end
do_a_thing_to_x.(add_ten, 10) # 20
@Tombarr
Tombarr / zip2.js
Created March 26, 2019 13:04
Zip multiple arrays (of equal length) using Symbol.iterator
function zip(...arrs) {
let i = -1;
return {
[Symbol.iterator]() {
return this;
},
next: () => ({
done: ++i === arrs[0].length,
value: arrs.map(arr => arr[i])
})
const hashCode = str => Array.from(str)
.reduce((h, c) => Math.imul(31, h) + c.charCodeAt(0) | 0, 0)
@Tombarr
Tombarr / object_iterator.js
Created May 7, 2019 00:55
Make all Objects iterable in ES6
Object.prototype[Symbol.iterator] = function() {
let props = Object.getOwnPropertyNames(this);
return {
next: () => {
let name = props.shift();
let done = (name === undefined);
let value = (done) ? undefined : [name, this[name]];
return { value, done };
}
}