Skip to content

Commit c337018

Browse files
authored
Merge pull request #156 from lambdaclass/elixir_update
Update elixir resources and add new elixir project
2 parents 1e96363 + 32617b0 commit c337018

File tree

3 files changed

+42
-68
lines changed

3 files changed

+42
-68
lines changed

README.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -618,11 +618,22 @@ You can find the instructions [here](https://developer.1password.com/docs/ssh/gi
618618
- [Erlang workshop](https://github.com/lambdaclass/erlang_workshop)
619619

620620
**Elixir**
621+
- Read the entire `Getting started` section starting at [the introduction](https://elixir-lang.org/getting-started/introduction.html) EXCEPT:
622+
- "Module attributes"
623+
- "Protocols"
624+
- "Sigils"
625+
- "Writing documentation"
626+
- "Optional syntax cheatsheet"
627+
- "Erlang Libraries"
628+
629+
In addition, read:
630+
- the documentation for Mix (https://hexdocs.pm/mix/Mix.html)
631+
- the documentation for ExUnit (https://hexdocs.pm/ex_unit/ExUnit.html
632+
633+
Other useful resources:
634+
- "Programming Elixir" by Dave Thomas
621635
- [Learning Functional Programming With Elixir](https://pragprog.com/titles/cdc-elixir/learn-functional-programming-with-elixir/)
622-
- Must read: Chapter 1.
623-
- Recommended to read: Chapters 3, 4, 5.
624-
- [Elixir getting started](https://elixir-lang.org/getting-started/introduction.html)
625-
- [Immutable Data](src/immutable_data.md)
636+
- Recommended reading: Chapters 3, 4, 5.
626637
- [StreamData: Property-based testing and data generation](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/)
627638

628639
#### Phoenix
@@ -641,10 +652,7 @@ You can find the instructions [here](https://developer.1password.com/docs/ssh/gi
641652
- If `asdf` doesn't let you install a previous version of Erlang [this](https://github.com/asdf-vm/asdf-erlang/issues/221) might help.
642653

643654
#### Projects
644-
- [Phoenix live counter](https://github.com/dwyl/phoenix-liveview-counter-tutorial)
645-
- [Phoenix todo-list](https://github.com/dwyl/phoenix-todo-list-tutorial)
646-
- [Phoenix ecto encryption](https://github.com/dwyl/phoenix-ecto-encryption-example)
647-
- [Phoenix append-only log](https://github.com/dwyl/phoenix-ecto-append-only-log-example)
655+
Check out the [project description](src/elixir_project_forth.md)
648656

649657
#### OpenAPI
650658
The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for HTTP APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic.

src/elixir_project_forth.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Elixir Project: Forth
2+
3+
Implement an evaluator for a very simple subset of Forth.
4+
5+
[Forth](https://en.wikipedia.org/wiki/Forth_%28programming_language%29) is a stack-based programming language.
6+
Implement a very basic evaluator for a small subset of Forth.
7+
8+
## Requirements:
9+
10+
### 1: Core language
11+
Your evaluator has to support the following words:
12+
- `+`, `-`, `*`, `/` (integer arithmetic)
13+
- `DUP`, `DROP`, `SWAP`, `OVER` (stack manipulation)
14+
15+
Your evaluator also has to support defining new words using the customary syntax: `: word-name definition ;`.
16+
17+
To keep things simple the only data type you need to support is signed integers of at least 16 bits size.
18+
19+
### 2: User interface
20+
21+
The evaluator must also be available via a web interface served by Phoenix Liveview.
22+
The user interface features must include:
23+
- uploading a forth program
24+
- requesting an evaluation
25+
- showing the results
26+
- a history of evaluated programs

src/immutable_data.md

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)