Skip to content

Instantly share code, notes, and snippets.

@plinionaves
Last active May 20, 2019 16:22
Show Gist options
  • Save plinionaves/b77bd4dba7b2f5363dde558ff573e061 to your computer and use it in GitHub Desktop.
Save plinionaves/b77bd4dba7b2f5363dde558ff573e061 to your computer and use it in GitHub Desktop.
Exemplos iniciais com Lisp Lang
; isso é um comentário de linha
; FUNCOES
; define uma função chamada soma
(defun soma (n1 n2) (+ n1 n2))
; executa a função soma
(print (soma 5 7)); 12
; define uma função chamada soma2 que retorna múltiplos valores
(defun soma2 (n1 n2) (values n1 "+" n2 "=" (+ n1 n2)))
; executa função soma2
(print (multiple-value-list (soma2 5 7))); 5 "+" 7 "=" 12
; VARIAVEIS
; variables locais
(let ((nome "Plinio Naves"))
(print nome) ; Plinio Naves
(print (string-upcase nome))) ; PLINIO NAVES
; variaveis globais
(defparameter *cargo* "JavaScript Fullstack Developer")
(print *cargo*) ; "NodeJS Backend Developer"
; alterando valor variavel global (cria escopo local)
(let ((*cargo* "NodeJS Backend Developer"))
(print *cargo*))
; no nivel global o valor é reatribuido
(print *cargo*) ; "NodeJS Backend Developer"
; LISTAS
; define uma lista
(defparameter *numeros* (list 1 2 3 4 5))
; imprime lista
(print *numeros*); (1 2 3)
; imprime primeiro numero
(print (first *numeros*)); 1
; imprime segundo numero
(print (third *numeros*)); 3
;(print (first (last *numeros*))); 5
; funcao map
(defun multiplicar (n1) (* n1 2))
(print (mapcar #'multiplicar *numeros*))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment