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 / lambas_fn.exs
Created January 10, 2019 14:01
Elixir Lambdas
# Lambdas with one parameter
[1, 2, 3] |> Enum.map(fn x -> x * x end) # [1, 4, 9]
# Lambdas with multiple parameters
[1, 2, 3] |> Enum.reduce(fn x, s -> x + s end) # 6
@Tombarr
Tombarr / annotations.java
Created January 9, 2019 22:40
Java annotations
public class AnnotationExample {
@Override
public String toString() {
return "AnnotationExample";
}
}
@Tombarr
Tombarr / add.ex
Created January 9, 2019 22:33
Addition in Elixir (with Typespec)
defmodule Math do
@spec add(number, number) :: number
def add(a, b), do: a + b
end
@Tombarr
Tombarr / type_check_guards.exs
Created January 9, 2019 14:39
Using "type check" functions in Guards
defmodule Greet do
def hey(name) when is_atom(name) do
name |> to_string |> hey
end
def hey(name) when is_binary(name) do
IO.puts "Hello, " <> name
end
end
@Tombarr
Tombarr / fibonacci.js
Created January 9, 2019 14:25
Fibonacci in Javascript
const fibonacci = (n) => {
if (n < 0) {
return null;
} else if (n == 0 || n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
};
@Tombarr
Tombarr / fibonacci.exs
Created January 9, 2019 14:21
Fibonacci using Elixir Guards
defmodule Fib do
def fibonacci(0), do: 1
def fibonacci(1), do: 1
def fibonacci(n) when n > 1 do
fibonacci(n-1) + fibonacci(n - 2)
end
def fibonacci(_), do: nil
end
@Tombarr
Tombarr / lambas.exs
Last active January 10, 2019 14:00
Lambdas in Elixir
# Lambdas with one parameter
[1, 2, 3] |> Enum.map(&(&1 * &1)) # [1, 4, 9]
# Lambdas with multiple parameters
[1, 2, 3] |> Enum.reduce(&(&1 + &2)) # 6
@Tombarr
Tombarr / lambdas.js
Last active January 8, 2019 15:15
Lambdas in Javascript
// Arrow functions with one parameter
[1, 2, 3].map(x => x * x); // [1, 4, 9]
// Arrow functions with multiple parameters
[1, 2, 3].reduce((x, s) => s + x); // 6
@Tombarr
Tombarr / argument_reassignment.exs
Created January 8, 2019 02:14
Argument reassignment doesn't work in Elixir
defmodule Greeting do
def hey(name) do
name = name || "Tom"
IO.puts "Hey, " <> name
end
end
test_name = nil
Greeting.hey(test_name) # Hello, Tom
test_name # nil
@Tombarr
Tombarr / argument_reassignment.js
Created January 8, 2019 02:10
Don't reassign your function arguments
const hey = (person) => {
person.name = person.name || "Tom";
console.log(`Hey, ${person.name}`);
};
let bob = {};
hey(bob); // "Hey, Tom"
bob // { name: "Tom" }