Lucio (en)

What?

Lucio is intended to be a Lisp-like language developed in Ruby only for knowledge and fun. No profit intended.

Why?

From Latin, Lucius means Light, because this development is enlightening my (poor) knowledge about programming languages, parsing and related subjects.

Lucio is also the name of one of the most important teachers I had, and I found this as a kind of homage.

The last, but not least, reason is to practice TDD, since I'm developing all the code using test-first.

When?

Lucio is developed in my almost nonexistent spare time as a way to keep me learning and passionate with software development.

Who?

I'm just an ordinary software developer, passionate and curious. If you want to collaborate, fork this and start to code. Simple.

Small sample

(/ (* (+ 1 2) (+3 4)) 2)
=> 10.5

(eql? (* (+ 1 2) 3) 9)
=> true

(if (eql? 10.5 (/ (* (+ 1 2) (+3 4)) 2))
  ("great"))
=> "great"

(if (eql? 0 (/ (* (+ 1 2) (+3 4)) 2))
  ("great")
  ("ouch")
=> "ouch"

Lucio (pt_BR)

O que é?

Lucio tem a intenção de ser um dialeto Lisp desenvolvido inicialmente em Ruby apenas por diversão e aprendizado, sem qualquer intenção de lucro financeiro.

Por que?

Em Latim, Lucius significa Luz, ou Iluminação, porque esse projeto está iluminando meu (pobre) conhecimento sobre linguagens de programação, interpretadores e assuntos relacionados.

Lucio é também o nome de um dos mais importantes professores que já tive, e encontrei nesse projeto uma forma de homenageá-lo.

O último motivo, mas não menos importante, é poder praticar TDD, partindo do princípio que estou desenvolvendo todo o código utilizando essa metodologia.

Quando?

Lucio está sendo desenvolvido em meu quase inexistente tempo livre como uma forma de me manter sempre aprendendo coisas novas e motivado a continuar desenvolvendo.

Quem?

Sou apenas um rapaz latino-americano sem dinheiro no bolso nem amigos importantes, mas que realmente adora o que faz e muito curioso. Se você quiser participar e colaborar, crie um fork e comece a codificar. Simples assim.

Exemplos simples

(/ (* (+ 1 2) (+3 4)) 2)
=> 10.5

(eql? (* (+ 1 2) 3) 9)
=> true

(if (eql? 10.5 (/ (* (+ 1 2) (+3 4)) 2))
  ("great"))
=> "great"

(if (eql? 0 (/ (* (+ 1 2) (+3 4)) 2))
  ("great")
  ("ouch")
=> "ouch"