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 / pipe_operator_inline.exs
Created January 8, 2019 01:33
Inline pipe operator in Elixir
"war" |> String.upcase |> String.split("") |> Enum.reverse |> Enum.join("")
@Tombarr
Tombarr / no_pipe_operator.exs
Created January 8, 2019 01:34
Explicit function calling without pipe operator
Enum.join(Enum.reverse(String.split(String.upcase("war"), "")), "")
@Tombarr
Tombarr / pattern_matching.exs
Created January 8, 2019 01:57
Basic Elixir pattern matching
# is it assignment?
all_systems = :go
# not quite
:go = all_systems
# alas age is but a number
tom = %{name: "Tom", age: 25}
%{age: num} = tom # 25
@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" }
@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 / 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 / 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 / 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 / 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 / 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