From 1cfb34b7f2523028157fc3971e109d8944f20946 Mon Sep 17 00:00:00 2001 From: Caleb Webber Date: Sat, 1 Mar 2025 22:09:01 -0500 Subject: [PATCH] add project structure --- problems/.formatter.exs | 4 +++ problems/.gitignore | 26 +++++++++++++++++++ problems/lib/euler.ex | 6 +++++ problems/lib/problems.ex | 18 +++++++++++++ problems/mix.exs | 28 +++++++++++++++++++++ problems/{ => solutions}/18/solution.livemd | 0 problems/{ => solutions}/19/solution.livemd | 0 problems/{ => solutions}/20/solution.exs | 0 problems/{ => solutions}/21/solution.exs | 0 problems/{ => solutions}/23/solution.exs | 2 +- problems/{ => solutions}/67/solution.txt | 0 11 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 problems/.formatter.exs create mode 100644 problems/.gitignore create mode 100644 problems/lib/euler.ex create mode 100644 problems/lib/problems.ex create mode 100644 problems/mix.exs rename problems/{ => solutions}/18/solution.livemd (100%) rename problems/{ => solutions}/19/solution.livemd (100%) rename problems/{ => solutions}/20/solution.exs (100%) rename problems/{ => solutions}/21/solution.exs (100%) rename problems/{ => solutions}/23/solution.exs (100%) rename problems/{ => solutions}/67/solution.txt (100%) diff --git a/problems/.formatter.exs b/problems/.formatter.exs new file mode 100644 index 0000000..d2cda26 --- /dev/null +++ b/problems/.formatter.exs @@ -0,0 +1,4 @@ +# Used by "mix format" +[ + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] +] diff --git a/problems/.gitignore b/problems/.gitignore new file mode 100644 index 0000000..c099ca1 --- /dev/null +++ b/problems/.gitignore @@ -0,0 +1,26 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where third-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Ignore package tarball (built via "mix hex.build"). +problems-*.tar + +# Temporary files, for example, from tests. +/tmp/ diff --git a/problems/lib/euler.ex b/problems/lib/euler.ex new file mode 100644 index 0000000..8626827 --- /dev/null +++ b/problems/lib/euler.ex @@ -0,0 +1,6 @@ +defmodule Euler do + def f() do + IO.puts("Hello, world") + end +end + diff --git a/problems/lib/problems.ex b/problems/lib/problems.ex new file mode 100644 index 0000000..8e5fc7b --- /dev/null +++ b/problems/lib/problems.ex @@ -0,0 +1,18 @@ +defmodule Problems do + @moduledoc """ + Documentation for `Problems`. + """ + + @doc """ + Hello world. + + ## Examples + + iex> Problems.hello() + :world + + """ + def hello do + :world + end +end diff --git a/problems/mix.exs b/problems/mix.exs new file mode 100644 index 0000000..7dcaf49 --- /dev/null +++ b/problems/mix.exs @@ -0,0 +1,28 @@ +defmodule Problems.MixProject do + use Mix.Project + + def project do + [ + app: :problems, + version: "0.1.0", + elixir: "~> 1.16", + start_permanent: Mix.env() == :prod, + deps: deps() + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger] + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + # {:dep_from_hexpm, "~> 0.3.0"}, + # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"} + ] + end +end diff --git a/problems/18/solution.livemd b/problems/solutions/18/solution.livemd similarity index 100% rename from problems/18/solution.livemd rename to problems/solutions/18/solution.livemd diff --git a/problems/19/solution.livemd b/problems/solutions/19/solution.livemd similarity index 100% rename from problems/19/solution.livemd rename to problems/solutions/19/solution.livemd diff --git a/problems/20/solution.exs b/problems/solutions/20/solution.exs similarity index 100% rename from problems/20/solution.exs rename to problems/solutions/20/solution.exs diff --git a/problems/21/solution.exs b/problems/solutions/21/solution.exs similarity index 100% rename from problems/21/solution.exs rename to problems/solutions/21/solution.exs diff --git a/problems/23/solution.exs b/problems/solutions/23/solution.exs similarity index 100% rename from problems/23/solution.exs rename to problems/solutions/23/solution.exs index 0d11334..ed2659e 100644 --- a/problems/23/solution.exs +++ b/problems/solutions/23/solution.exs @@ -33,6 +33,6 @@ sum = for n <- 1..28123, s -> s + n end + (((28123*28124)/2) - sum) |> IO.puts() - diff --git a/problems/67/solution.txt b/problems/solutions/67/solution.txt similarity index 100% rename from problems/67/solution.txt rename to problems/solutions/67/solution.txt