Skip to content

Instantly share code, notes, and snippets.

@jcelliott
jcelliott / flatten.exs
Last active August 26, 2021 16:21
Recursively flatten a list in Elixir
defmodule Flatten do
@doc """
Flattens a list by recursively flattening the head and tail of the list
"""
def flatten([head | tail]), do: flatten(head) ++ flatten(tail)
def flatten([]), do: []
def flatten(element), do: [element]
end
@izelnakri
izelnakri / company.ex
Last active October 5, 2023 14:59
ecto/elixir search functionality
# SELECT company,
# GREATEST(similarity(company.sourced_name, 'search term'), similarity(company.local_name, 'search term'), similarity(company.name, 'search term')) AS rank
# FROM "companies" company
# WHERE (similarity(company.sourced_name, 'search term') > 0.1::float) OR
# (similarity(company.local_name, 'search term') > 0.1::float) OR
# (similarity(company.name, 'search term') > 0.1::float)
# ORDER BY rank DESC
# LIMIT 5;
defmodule Company do