Skip to content

Commit b8380ab

Browse files
committed
Modularize index.org file
1 parent f19b1ec commit b8380ab

File tree

4 files changed

+165
-163
lines changed

4 files changed

+165
-163
lines changed

index.org

+3-163
Original file line numberDiff line numberDiff line change
@@ -31,170 +31,10 @@ repositório desta página]].
3131
- [[file:rules.html][Regras]]
3232

3333
* Conceitos e Fundamentos
34-
** O que é Lisp?
35-
36-
Lisp é uma família de linguagens de programação de computadores com
37-
uma longa história e tradição. O primeiro Lisp denotado historicamente
38-
por [[https://pt.wikipedia.org/wiki/Lisp][LISP]] foi criado por [[https://pt.wikipedia.org/wiki/John_McCarthy][John McCarthy]], em 1958, nos laboratórios de
39-
inteligência artificial do MIT, USA., Lisp é a segunda linguagem de
40-
programação de alto nível mais antiga ainda em uso atualmente, advinda
41-
antes mesmo da própria Internet (somente Fortran é mais antiga). Desde
42-
sua origem, Lisp se tornou rapidamente a linguagem favorita para
43-
Inteligência Artificial.
44-
45-
Dialetos Lisp [fn:1] têm uma sintaxe singular simplificada para
46-
denotar, listas e símbolos, que podem ou não estarem associados a
47-
valores e/ou a procedimentos. Na linguagens da família Lisp, há a
48-
peculiaridade de existir uma linha muito tênue de separação entre
49-
dados e procedimentos no código-fonte. Na realidade, é possível
50-
produzir código a partir de dados e vice-versa! Uma das
51-
características fortes da linguagem é o uso da [[https://pt.wikipedia.org/wiki/Nota%25C3%25A7%25C3%25A3o_polonesa][notação polonesa]], que
52-
simplifica a sintaxe da linguagem, de forma a previnir ambiguidades:
53-
operações e operandos são denotados de forma explícita, em sua ordem
54-
de precedência, no uso de listas.
55-
56-
#+BEGIN_SRC lisp
57-
58-
(operação operando-1 operando-2)
59-
(+ 1 2) ;; => 3
60-
61-
#+END_SRC
62-
63-
Esta família de linguagens foi desenhada para abstrair a complexidade
64-
do hardware de um computador, criando uma interface para que um humano
65-
possa se comunicar de maneira expressiva com a máquina. Influenciada
66-
pela linguagem de computação teórica Lambda Calculus de Alonzo Church,
67-
atualmente os dialetos de Lisp de uso geral mais utilizados e
68-
conhecidos são Common Lisp, Scheme e Clojure.
69-
70-
[fn:1] Lisp é uma abreviação de **LISt Processing**, processamento de listas.
71-
72-
** O que é Common Lisp?
73-
74-
Common Lisp é um dialeto multi-paradigma da linguagem de programação
75-
Lisp. Suporta os paradigmas de programação procedural, orientado a
76-
objetos e, inclusive, o funcional, comum a todos os
77-
Lisps, por sua próxima relação com a natureza do Cálculo Lambda.
78-
79-
Foi criada por Guy L. Steele nos anos 80, com o intuito de combinar
80-
aspectos de diversos dialetos anteriores, incluindo Scheme. Em 1994
81-
foi publicada no padrão [[http://cvberry.com/tech_writings/notes/common_lisp_standard_draft.html][ANSI Information Technology - Programming
82-
Language - Common Lisp, registro X3.226-1994 (R1999)]]. Common Lisp é
83-
bem maior e semanticamente mais complexa que um dialeto como Scheme,
84-
uma vez que foi projetada para ser uma linguagem comercial e para ser
85-
compatível com os diversos outros dialetos Lisp dos quais derivou.
86-
87-
#+BEGIN_SRC lisp
88-
89-
(defun hello-world () ;; definição de função
90-
(princ "Hello, Lispers!"))
91-
92-
(hello-world) ;; chamada de função
93-
94-
;; resultado: Hello, Lispers!
95-
#+END_SRC
34+
#+INCLUDE: subsections/index/conceitos-e-fundamentos.org :only-contents t
9635

9736
* Links de Aprendizado sobre Common Lisp
98-
** Apresentação
99-
100-
- [[http://lisp-lang.org/][Site oficial de Common Lisp]], apresentação sobre a linguagem e seu poder.
101-
- [[https://github.com/CodyReichert/awesome-cl][Awesome-CL]], uma lista imensa sobre frameworks e ferramentas para
102-
Common Lisp.
103-
- [[http://www.lisperati.com/casting.html][Lisperati Casting]], uma história em quadrinhos sobre a magia que é
104-
programar em Lisp.
105-
- [[http://www.avelino.xxx/hist%C3%B3ria-do-lisp-abra-os-olhos-para-programa%C3%A7%C3%A3o-funcional/][História do Lisp]], entenda como o Lisp começou e porque temos tantos dialetos.
106-
107-
** Documentação e tutoriais
108-
109-
- [[http://bnmcgn.github.io/lisp-guide/lisp-exploration.html][Common Lisp REPL Exploration Guide]], um guia interessantíssimo sobre
110-
a exploração de Common Lisp pelo REPL [fn:2].
111-
- [[https://lispcookbook.github.io/cl-cookbook/][Cookbook de Common Lisp]], atualmente com uma [[lisp.com.br/cl-cookbook][tradução para o Português em andamento]], feita pela comunidade.
112-
Também inclui tutoriais sobre Quicklisp (veja a seção de Tooling).
113-
- [[http://www.lispworks.com/documentation/HyperSpec/Front/][Common Lisp Hyperspec]]
114-
Sua primeira parada ao pesquisar por documentação de Common Lisp. [[http://clhs.lisp.se/][(Mirror)]]
115-
- [[https://www.cliki.net/][CLiki, a Wiki de Common Lisp]]
116-
117-
[fn:2] REPL significa Read-Eval-Print-Loop, muito comum em linguagens
118-
interativas como Lisp e Python. A propósito, o conceito foi
119-
inicialmente feito justamente em Lisp!
120-
121-
** Livros
122-
123-
- Common Lisp: A Gentle Introduction to Symbolic Computation, por David S. Touretsky
124-
- [Amazon] [[https://www.amazon.com.br/Common-LISP-Introduction-Computation-Engineering-ebook/dp/B00IZUEG1G/][Livro físico]]
125-
- [[https://www.cs.cmu.edu/~dst/LispBook/][Versão online]]
126-
- [Amazon] [[https://www.amazon.com.br/Land-Lisp-Learn-Program-Game-ebook/dp/B004AE3P4K/][Land of Lisp: Learn to Program in Lisp, One Game at a Time!]], por Conrad Barski
127-
- [Amazon] [[https://www.amazon.com.br/Common-Lisp-Recipes-Problem-Solution-Approach-ebook/dp/B01JFTONBS/][Common Lisp Recipes: A Problem-Solution Approach]], por Edmund Weitz
128-
- Practical Common Lisp, por Peter Seibel
129-
- [Amazon] [[https://www.amazon.com.br/Practical-Common-Lisp-Peter-Seibel/dp/1590592395][Livro físico]]
130-
- [[http://www.gigamonkeys.com/book/][Versão online]]
37+
#+INCLUDE: subsections/index/aprendizado.org :only-contents t
13138

13239
* Tooling
133-
134-
** Emacs
135-
136-
Emacs é, consensualmente, o melhor editor de texto para se programar em
137-
Common Lisp.
138-
139-
- [Inglês] [[https://www.gnu.org/software/emacs/][Site oficial]]
140-
- [Inglês] [[https://github.com/bbatsov/prelude][Prelude]] uma configuração com baterias pro Emacs para bons hábitos
141-
- [Inglês] Mini-manual do Emacs, por [[https://github.com/tuhdo][tuhdo]]
142-
- [[http://tuhdo.github.io/emacs-tutor.html][Parte 1: O Básico]]
143-
- [[http://tuhdo.github.io/emacs-tutor2.html][Parte 2: Por que parênteses importam]]
144-
- [[http://tuhdo.github.io/emacs-tutor3.html][Parte 3: Customizando e extendendo o Emacs]]
145-
146-
** Portacle
147-
148-
Portacle é um reempacotamento de Emacs. Diferente do programa original,
149-
Portacle é uma edição voltada para programadores Common Lisp. Este editor
150-
já inclui o SBCL (implementação de Common Lisp), Quicklisp (para gerenciar
151-
projetos e pacotes), e Magit (para lidar com versionamento de código em
152-
Git). Enquanto recomendamos instalar o Emacs e aprender a configurá-lo,
153-
esta é também uma excelente ferramenta para iniciantes que queiram um
154-
ambiente Common Lisp que funcione logo de cara, ou mesmo para lispeiros
155-
experientes que queiram um ambiente CL que possam carregar no pendrive,
156-
e que funcione em quase qualquer sistema operacional.
157-
158-
- [Inglês] [[https://portacle.github.io/][Link oficial do Portacle]]
159-
- [Inglês] [[https://github.com/portacle/portacle][Repositório oficial]]
160-
161-
** SLIME
162-
163-
SLIME significa /SUPERIOR LISP INTERACTION MODE for EMACS/. É uma
164-
das coisas mais fascinante que se faz Common Lisp uma linguagem tão
165-
produtiva e o Emacs ser seu editor ideal.
166-
167-
- [Inglês] [[https://astraybi.wordpress.com/2015/08/02/how-to-install-slimesbclquicklisp-into-emacs/][Instalando SLIME + SBCL + Quicklisp no Emacs]], por Astray_BI
168-
- [Inglês] [[https://github.com/quicklisp/quicklisp-slime-helper][Repositório do =quicklisp-slime-helper=]]
169-
170-
Este pacote torna mais fácil a instalação do SLIME, a partir do
171-
Quicklisp.
172-
173-
** Compiladores
174-
175-
- [Inglês] [[http://sbcl.org/][SBCL]]: Steel Bank Common Lisp (recomendado)
176-
- [Inglês] [[https://common-lisp.net/project/ecl/][ECL]]: Embedabble Common Lisp
177-
- [Inglês] [[https://clisp.sourceforge.io/][GNU CLISP]] (obsoleto desde 2010, artefato histórico)
178-
- [Inglês] [[https://ccl.clozure.com/][CCL]]: Clozure Common Lisp ([[https://clojure.org/][Clojure]] é outra coisa, não confunda!)
179-
180-
** Quicklisp
181-
182-
Quicklisp é o gerenciador de pacotes (systems, nos jargões de CL),
183-
muito útil para integrar sua aplicação usando pacotes de terceiros.
184-
185-
- [Inglês] [[https://www.quicklisp.org/beta/][Site oficial do Quicklisp]]
186-
- [Inglês] [[https://www.xach.com/lisp/quickproject/][Quickproject: crie o esqueleto de um projeto de Common Lisp]]
187-
188-
Este tutorial é extremamente útil para a criação de projetos
189-
compatíveis com Quicklisp.
190-
191-
** Roswell
192-
193-
Roswell é descrito como sendo o instalador de implementações de
194-
Common Lisp, bem como um launcher para o ambiente em geral de
195-
Common Lisp, que simplesmente funciona.
196-
Tenta automatizar a instalação dos compiladores, pacotes do Emacs
197-
e criação de binários com Common Lisp. Vale a pena tentar dar uma
198-
olhada!
199-
200-
- [Inglês] [[https://github.com/roswell/roswell][Repositório oficial]]
40+
#+INCLUDE: subsections/index/tooling.org :only-contents t

subsections/index/aprendizado.org

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
* Apresentação
2+
3+
- [[http://lisp-lang.org/][Site oficial de Common Lisp]], apresentação sobre a linguagem e seu poder.
4+
- [[https://github.com/CodyReichert/awesome-cl][Awesome-CL]], uma lista imensa sobre frameworks e ferramentas para
5+
Common Lisp.
6+
- [[http://www.lisperati.com/casting.html][Lisperati Casting]], uma história em quadrinhos sobre a magia que é
7+
programar em Lisp.
8+
- [[http://www.avelino.xxx/hist%C3%B3ria-do-lisp-abra-os-olhos-para-programa%C3%A7%C3%A3o-funcional/][História do Lisp]], entenda como o Lisp começou e porque temos tantos dialetos.
9+
10+
* Documentação e tutoriais
11+
12+
- [[http://bnmcgn.github.io/lisp-guide/lisp-exploration.html][Common Lisp REPL Exploration Guide]], um guia interessantíssimo sobre
13+
a exploração de Common Lisp pelo REPL [fn:2].
14+
- [[https://lispcookbook.github.io/cl-cookbook/][Cookbook de Common Lisp]], atualmente com uma [[lisp.com.br/cl-cookbook][tradução para o Português em andamento]], feita pela comunidade.
15+
Também inclui tutoriais sobre Quicklisp (veja a seção de Tooling).
16+
- [[http://www.lispworks.com/documentation/HyperSpec/Front/][Common Lisp Hyperspec]]
17+
Sua primeira parada ao pesquisar por documentação de Common Lisp. [[http://clhs.lisp.se/][(Mirror)]]
18+
- [[https://www.cliki.net/][CLiki, a Wiki de Common Lisp]]
19+
20+
[fn:2] REPL significa Read-Eval-Print-Loop, muito comum em linguagens
21+
interativas como Lisp e Python. A propósito, o conceito foi
22+
inicialmente feito justamente em Lisp!
23+
24+
* Livros
25+
26+
- Common Lisp: A Gentle Introduction to Symbolic Computation, por David S. Touretsky
27+
- [Amazon] [[https://www.amazon.com.br/Common-LISP-Introduction-Computation-Engineering-ebook/dp/B00IZUEG1G/][Livro físico]]
28+
- [[https://www.cs.cmu.edu/~dst/LispBook/][Versão online]]
29+
- [Amazon] [[https://www.amazon.com.br/Land-Lisp-Learn-Program-Game-ebook/dp/B004AE3P4K/][Land of Lisp: Learn to Program in Lisp, One Game at a Time!]], por Conrad Barski
30+
- [Amazon] [[https://www.amazon.com.br/Common-Lisp-Recipes-Problem-Solution-Approach-ebook/dp/B01JFTONBS/][Common Lisp Recipes: A Problem-Solution Approach]], por Edmund Weitz
31+
- Practical Common Lisp, por Peter Seibel
32+
- [Amazon] [[https://www.amazon.com.br/Practical-Common-Lisp-Peter-Seibel/dp/1590592395][Livro físico]]
33+
- [[http://www.gigamonkeys.com/book/][Versão online]]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
* O que é Lisp?
2+
3+
Lisp é uma família de linguagens de programação de computadores com
4+
uma longa história e tradição. O primeiro Lisp denotado historicamente
5+
por [[https://pt.wikipedia.org/wiki/Lisp][LISP]] foi criado por [[https://pt.wikipedia.org/wiki/John_McCarthy][John McCarthy]], em 1958, nos laboratórios de
6+
inteligência artificial do MIT, USA., Lisp é a segunda linguagem de
7+
programação de alto nível mais antiga ainda em uso atualmente, advinda
8+
antes mesmo da própria Internet (somente Fortran é mais antiga). Desde
9+
sua origem, Lisp se tornou rapidamente a linguagem favorita para
10+
Inteligência Artificial.
11+
12+
Dialetos Lisp [fn:1] têm uma sintaxe singular simplificada para
13+
denotar, listas e símbolos, que podem ou não estarem associados a
14+
valores e/ou a procedimentos. Na linguagens da família Lisp, há a
15+
peculiaridade de existir uma linha muito tênue de separação entre
16+
dados e procedimentos no código-fonte. Na realidade, é possível
17+
produzir código a partir de dados e vice-versa! Uma das
18+
características fortes da linguagem é o uso da [[https://pt.wikipedia.org/wiki/Nota%25C3%25A7%25C3%25A3o_polonesa][notação polonesa]], que
19+
simplifica a sintaxe da linguagem, de forma a previnir ambiguidades:
20+
operações e operandos são denotados de forma explícita, em sua ordem
21+
de precedência, no uso de listas.
22+
23+
#+BEGIN_SRC lisp
24+
25+
(operação operando-1 operando-2)
26+
(+ 1 2) ;; => 3
27+
28+
#+END_SRC
29+
30+
Esta família de linguagens foi desenhada para abstrair a complexidade
31+
do hardware de um computador, criando uma interface para que um humano
32+
possa se comunicar de maneira expressiva com a máquina. Influenciada
33+
pela linguagem de computação teórica Lambda Calculus de Alonzo Church,
34+
atualmente os dialetos de Lisp de uso geral mais utilizados e
35+
conhecidos são Common Lisp, Scheme e Clojure.
36+
37+
[fn:1] Lisp é uma abreviação de **LISt Processing**, processamento de listas.
38+
39+
* O que é Common Lisp?
40+
41+
Common Lisp é um dialeto multi-paradigma da linguagem de programação
42+
Lisp. Suporta os paradigmas de programação procedural, orientado a
43+
objetos e, inclusive, o funcional, comum a todos os
44+
Lisps, por sua próxima relação com a natureza do Cálculo Lambda.
45+
46+
Foi criada por Guy L. Steele nos anos 80, com o intuito de combinar
47+
aspectos de diversos dialetos anteriores, incluindo Scheme. Em 1994
48+
foi publicada no padrão [[http://cvberry.com/tech_writings/notes/common_lisp_standard_draft.html][ANSI Information Technology - Programming
49+
Language - Common Lisp, registro X3.226-1994 (R1999)]]. Common Lisp é
50+
bem maior e semanticamente mais complexa que um dialeto como Scheme,
51+
uma vez que foi projetada para ser uma linguagem comercial e para ser
52+
compatível com os diversos outros dialetos Lisp dos quais derivou.
53+
54+
#+BEGIN_SRC lisp
55+
56+
(defun hello-world () ;; definição de função
57+
(princ "Hello, Lispers!"))
58+
59+
(hello-world) ;; chamada de função
60+
61+
;; resultado: Hello, Lispers!
62+
#+END_SRC

subsections/index/tooling.org

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
* Emacs
2+
3+
Emacs é, consensualmente, o melhor editor de texto para se programar em
4+
Common Lisp.
5+
6+
- [Inglês] [[https://www.gnu.org/software/emacs/][Site oficial]]
7+
- [Inglês] [[https://github.com/bbatsov/prelude][Prelude]] uma configuração com baterias pro Emacs para bons hábitos
8+
- [Inglês] Mini-manual do Emacs, por [[https://github.com/tuhdo][tuhdo]]
9+
- [[http://tuhdo.github.io/emacs-tutor.html][Parte 1: O Básico]]
10+
- [[http://tuhdo.github.io/emacs-tutor2.html][Parte 2: Por que parênteses importam]]
11+
- [[http://tuhdo.github.io/emacs-tutor3.html][Parte 3: Customizando e extendendo o Emacs]]
12+
13+
* Portacle
14+
15+
Portacle é um reempacotamento de Emacs. Diferente do programa original,
16+
Portacle é uma edição voltada para programadores Common Lisp. Este editor
17+
já inclui o SBCL (implementação de Common Lisp), Quicklisp (para gerenciar
18+
projetos e pacotes), e Magit (para lidar com versionamento de código em
19+
Git). Enquanto recomendamos instalar o Emacs e aprender a configurá-lo,
20+
esta é também uma excelente ferramenta para iniciantes que queiram um
21+
ambiente Common Lisp que funcione logo de cara, ou mesmo para lispeiros
22+
experientes que queiram um ambiente CL que possam carregar no pendrive,
23+
e que funcione em quase qualquer sistema operacional.
24+
25+
- [Inglês] [[https://portacle.github.io/][Link oficial do Portacle]]
26+
- [Inglês] [[https://github.com/portacle/portacle][Repositório oficial]]
27+
28+
* SLIME
29+
30+
SLIME significa /SUPERIOR LISP INTERACTION MODE for EMACS/. É uma
31+
das coisas mais fascinante que se faz Common Lisp uma linguagem tão
32+
produtiva e o Emacs ser seu editor ideal.
33+
34+
- [Inglês] [[https://astraybi.wordpress.com/2015/08/02/how-to-install-slimesbclquicklisp-into-emacs/][Instalando SLIME + SBCL + Quicklisp no Emacs]], por Astray_BI
35+
- [Inglês] [[https://github.com/quicklisp/quicklisp-slime-helper][Repositório do =quicklisp-slime-helper=]]
36+
37+
Este pacote torna mais fácil a instalação do SLIME, a partir do
38+
Quicklisp.
39+
40+
* Compiladores
41+
42+
- [Inglês] [[http://sbcl.org/][SBCL]]: Steel Bank Common Lisp (recomendado)
43+
- [Inglês] [[https://common-lisp.net/project/ecl/][ECL]]: Embedabble Common Lisp
44+
- [Inglês] [[https://clisp.sourceforge.io/][GNU CLISP]] (obsoleto desde 2010, artefato histórico)
45+
- [Inglês] [[https://ccl.clozure.com/][CCL]]: Clozure Common Lisp ([[https://clojure.org/][Clojure]] é outra coisa, não confunda!)
46+
47+
* Quicklisp
48+
49+
Quicklisp é o gerenciador de pacotes (systems, nos jargões de CL),
50+
muito útil para integrar sua aplicação usando pacotes de terceiros.
51+
52+
- [Inglês] [[https://www.quicklisp.org/beta/][Site oficial do Quicklisp]]
53+
- [Inglês] [[https://www.xach.com/lisp/quickproject/][Quickproject: crie o esqueleto de um projeto de Common Lisp]]
54+
55+
Este tutorial é extremamente útil para a criação de projetos
56+
compatíveis com Quicklisp.
57+
58+
* Roswell
59+
60+
Roswell é descrito como sendo o instalador de implementações de
61+
Common Lisp, bem como um launcher para o ambiente em geral de
62+
Common Lisp, que simplesmente funciona.
63+
Tenta automatizar a instalação dos compiladores, pacotes do Emacs
64+
e criação de binários com Common Lisp. Vale a pena tentar dar uma
65+
olhada!
66+
67+
- [Inglês] [[https://github.com/roswell/roswell][Repositório oficial]]

0 commit comments

Comments
 (0)