From d069a4a8b65da0f2f9a972e4b8a29a55b58ba81a Mon Sep 17 00:00:00 2001 From: Manoel Vilela Date: Sun, 3 Mar 2019 18:19:01 -0300 Subject: [PATCH 1/2] =?UTF-8?q?Update=20conceitos-e-fundamentos.org:=20O?= =?UTF-8?q?=20que=20=C3=A9=20Common=20Lisp=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #23 --- subsections/index/conceitos-e-fundamentos.org | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/subsections/index/conceitos-e-fundamentos.org b/subsections/index/conceitos-e-fundamentos.org index 5e0e3a0..b0fe576 100644 --- a/subsections/index/conceitos-e-fundamentos.org +++ b/subsections/index/conceitos-e-fundamentos.org @@ -38,18 +38,33 @@ conhecidos são Common Lisp, Scheme e Clojure. * O que é Common Lisp? -Common Lisp é um dialeto multi-paradigma da linguagem de programação -Lisp. Suporta os paradigmas de programação procedural, orientado a -objetos e, inclusive, o funcional, comum a todos os -Lisps, por sua próxima relação com a natureza do Cálculo Lambda. - -Foi criada por Guy L. Steele nos anos 80, com o intuito de combinar -aspectos de diversos dialetos anteriores, incluindo Scheme. Em 1994 -foi publicada no padrão [[http://cvberry.com/tech_writings/notes/common_lisp_standard_draft.html][ANSI Information Technology - Programming -Language - Common Lisp, registro X3.226-1994 (R1999)]]. Common Lisp é -bem maior e semanticamente mais complexa que um dialeto como Scheme, -uma vez que foi projetada para ser uma linguagem comercial e para ser -compatível com os diversos outros dialetos Lisp dos quais derivou. +Common Lisp é uma linguagem multi-paradigma pertencente a família de +linguagems de programação Lisp. Suporta os paradigmas de programação +funcional, procedural e orientado a objetos. + +No início dos anos 80, existiam dezenas de implementações Lisp +incompatíveis, com cerca de meia dúzia de dialetos principais. Um +projeto foi iniciado, liderado por Scott Fahlman, Daniel Weinreb, +David Moon, Guy Steele e Richard Gabriel, para definir um Lisp comum +que combinaria as melhores características dos dialetos existentes em +um todo coerente. + +A primeira edição do padrão Common Lisp apareceu em 1984; um padrão +revisado apareceu em 1990. O padrão ANSI Common Lisp foi lançado em +1994 e revisado em 2004. Common Lisp tornou-se rapidamente o Lisp +escolhido em ambientes acadêmicos e industriais. Os outros dialetos +praticamente desapareceram, com exceção do Scheme, que continua a +desfrutar de uma popularidade modesta para aplicações educacionais. + +Muitas das idéias mais importantes nos sistemas de programação +surgiram em conexão com Lisp. Estas incluem a combinação de funções +interpretadas e compiladas, coleta de lixo, chamadas de função +recursiva, rastreamento e depuração no nível de +código-fonte. Atualmente, Lisp é uma linguagem líder para pesquisa +sofisticada sobre estilos de programação funcional, paralelo e +orientada a objetos. Além de ser também uma grande referência para +Computação Quântica, assim como tem sido usado comercialmente em +softwares como [[http://www.schloerconsulting.com/quantum-computer-q-lisp-programming-language][QLisp Project]]. #+BEGIN_SRC lisp From 3fa35162096b0334c032c221c57605a78040adca Mon Sep 17 00:00:00 2001 From: Manoel Vilela Date: Sun, 3 Mar 2019 18:31:22 -0300 Subject: [PATCH 2/2] Update CL code example: a factorial implementation --- subsections/index/conceitos-e-fundamentos.org | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/subsections/index/conceitos-e-fundamentos.org b/subsections/index/conceitos-e-fundamentos.org index b0fe576..ca5d9fa 100644 --- a/subsections/index/conceitos-e-fundamentos.org +++ b/subsections/index/conceitos-e-fundamentos.org @@ -67,11 +67,17 @@ Computação Quântica, assim como tem sido usado comercialmente em softwares como [[http://www.schloerconsulting.com/quantum-computer-q-lisp-programming-language][QLisp Project]]. #+BEGIN_SRC lisp + (defun range (a b) + (loop for x from a to b + collect x)) + + (defun fact (n) + (reduce #'* (range 1 n))) (defun hello-world () ;; definição de função - (princ "Hello, Lispers!")) + (format t "Fatorial de 10! é: ~a" (fact 10))) (hello-world) ;; chamada de função - ;; resultado: Hello, Lispers! + ;; resultado: Fatorial de 10! é: 3628800 #+END_SRC