ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - jwhiteman/a-little-elixir-goes-a-long-way: The Little Schemer in Elixir.
The Little Schemer in Elixir. Contribute to jwhiteman/a-little-elixir-goes-a-long-way development by creating an account on GitHub.
Visit Site

GitHub - jwhiteman/a-little-elixir-goes-a-long-way: The Little Schemer in Elixir.

GitHub - jwhiteman/a-little-elixir-goes-a-long-way: The Little Schemer in Elixir.

The Little Schemer in Elixir.

This repo contains the exercises and algorithms in the Little Schemer, ported to Elixir. As well, each module contains my own Scheme solutions for easy comparison. I've also provided unit tests where I could.

To run the tests, clone the project, cd into the repo directory and run:

mix test

To play around with the modules in the REPL run:

iex -S mix

Notes on Scheme

If you're new to recursion (perhaps coming from Ruby) then you'll definitely want to buy the book and work through it.

You can pick it up here: http://is.gd/ErC2bW

If you want to run Scheme code, give Dr. Racket a try: http://download.racket-lang.org/. It's available on Mac, Linux and Windows. All the Scheme code in these exercises can be run as Racket without problem.

The official Little Schemer site is here:

http://www.ccs.neu.edu/home/matthias/BTLS/

It's worth checking out. They have an extra PDF with 35-pages of additional exercises not found in the book.

Elixir Notes

Elixir isn't Scheme, so some exercises don't translate as well as others. There are quite a few things that take some work in Scheme but are trivial in Elixir due to pattern matching. In some cases I tried to stick to the spirit of the exercise; in other cases, I tried to leverage the power of pattern matching to the best of my abilities.

My hope is that having some variety will make the overall project more valuable. If you've got an interesting solution that you'd like to see included, create a pull request.

Except in one or two examples, I made no attempt to make use of Elixir's concurrency primitives.

Book Notes

Table of contents and general outline

  1. Toys: the basics of car, cons & cdr
  2. Do it Again: the basics of recursion using simple lists
  3. Cons the Magnificent: list building and basic filtering and mapping
  4. Numbers Games: true to the title, working with lists of numbers and basic math
  5. Oh My Gawd, It's Full of Stars: working with lists of lists
  6. Shadows: building your first simple evaluator
  7. Friends and Relations: working with sets
  8. Lambda the Ultimate: currying and continuation passing style
  9. ...and Again, and Again: the Y combinator
  10. What's the Value of All This?: build your own basic Scheme, in Elixir!

Working through the book should give you enough knowledge to get you started building your own Scheme interpreter.

Mine is here: https://github.com/jwhiteman/lighthouse-scheme

Bon Appétit

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory