Escolar Documentos
Profissional Documentos
Cultura Documentos
(squart 5)
(f x y)
• A passagem de parâmetros é feita por valor.
• Number = (42).
• Complex = (2+3i).
• Integer = (42).
• (quote xyz)
=> xyz
• ‘E
=> E
• String:
• "Hello, World!"
=> "Hello, World!"
• Vectors:
• (vector 0 1 2 3 4)
=> #(0 1 2 3 4)
• Dotted pair:
• (cons 1 #t)
=> (1 . #t)
• List:
• (case (+ 3 4)
((7) 'seven)
((2) 'two)
(else 'nothing))
=> seven
• Expressão condicionail Case :
• (case 'a
((a b c d) 'first)
((e f g h) 'second)
(else 'rest))
=> first
• Existem três tipos de expressões lógicas:
• (not expr)
• Expressões lógica com Not:
• (define a 10)
a
=>10
• Utilizamos a palavra reservada set! Para alterar variáveis:
• (define a 10)
a
=>10
(set! a 5)
a
=> 5
• Utilizando a palavra reservada define:
• (square 2)
=> 4
• Utilizando a palavra reservada lambda:
• (define x 10)
(let ((x 5) (y (* x 2))) (+ x y))
=> 25
• Utilizando a palavra reservada let*.
• (define x 10)
(let* ((x 5)
(y (* x 2)))
(+ x y))
=> 15
• Comparando let com let*.
• (define x 10)
(let ((x 5) (y (* x 2)))
(+ x y))
=> 25
• (define x 10)
(let* ((x 5) (y (* x 2)))
(+ x y))
=> 15
• Utilizando a palavra reservada do.
• É uma construção de iteração complexa, onde algumas variáveis são
especificadas, a inicialização de algumas também e o passo, ou seja,
um controle de loop. É um loop parecido com o for.
• A saída será:
• => "bbbbbb"
• Utilizando a palavra reservada letrec.
• (define (factorial-tail n)
(factorial-helper n 1))
• A saída será:
• (factorial-tail 5 )
=> 120
• Utilizando Recursão normal.
• (define (factorial n)
( if (equal? n 0)
1
(* n (factorial (- n 1 )))))
• Utilizando Recursão normal.
• A saída será
|(factorial 5)
| (factorial 4)
| |(factorial 3)
| | (factorial 2)
| | |(factorial 1)
| | | (factorial 0)
|||1
| | |1
||2
| |6
| 24
|120
• Para gerarmos a saída “Hello World” usamos o
seguinte código:
• (define beer
• (lambda (n)
• (if (> n 0)
• (begin
• (bottles n) (display " on the wall") (newline)
• (bottles n) (newline)
• (display "Take one down, pass it around") (newline)
• (bottles (- n 1)) (display " on the wall") (newline)
• (newline)
• (beer (- n 1))))))
• (beer 99)
• http://en.literateprograms.org/Hello_World_(Scheme)
• http://www.cs.hut.fi/Studies/T-93.210/schemetutorial/node1.html
• http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
• http://pheattarchive.emporia.edu/courses/2002/cs220f02/anotherSchemeTtutorial/default.htm
• http://www.inf.ufsc.br/~barreto/trabaluno/PF_Geraldo_Maria.pdf