Ferramentas do usuário

Ferramentas do site


temas:programacao:fp

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Última revisão Ambos lados da revisão seguinte
temas:programacao:fp [2015/10/11 20:39]
phil [4) Funções são cidadãos do primeiro classe]
temas:programacao:fp [2017/04/26 20:44]
phil
Linha 17: Linha 17:
     (1 2 (3 4))     (1 2 (3 4))
  
-Expressões também são listas. Sempre o nome do operador ou função como primeiro elemento do lista e as operandos / argumentos depois.+Expressões também são listas. Sempre o nome do operador ou função como primeiro elemento do lista e as operandos / argumentos depois.
  
     (+ 2 2)     (+ 2 2)
Linha 66: Linha 66:
  
     (define x 15)     (define x 15)
- 
     (if (< 10 x) "sim" "nao")     (if (< 10 x) "sim" "nao")
  
Linha 73: Linha 72:
  
     (define (f x) (* x x))     (define (f x) (* x x))
- 
     (f 8)     (f 8)
  
Linha 105: Linha 103:
  
     (list 1 2 3 4)     (list 1 2 3 4)
- 
     (range 10)     (range 10)
          
Linha 130: Linha 127:
  
     (define (vv xs) (cons (car (cdr xs)) (list (car xs))))     (define (vv xs) (cons (car (cdr xs)) (list (car xs))))
- 
     (vv '("Visa" "Versa"))     (vv '("Visa" "Versa"))
  
Linha 195: Linha 191:
  
 ===== E agora, vamos brincar ===== ===== E agora, vamos brincar =====
 +
 +    #lang racket
 +
 +    (require racket/draw)
 +    (require racket/gui) 
 +
 +    (define target (make-bitmap 400 400)) 
 +    (define dc (new bitmap-dc% [bitmap target]))
 +    (make-object image-snip% target)
 +
 +
 +    (define (:x p) (car p))
 +    (define (:y p) (cadr p))
 +
 +    (define (desenha dc forma cor) 
 +      (send dc set-pen cor 3 'solid)
 +      (if (< (sequence-length forma) 2) '()
 +          (let ([p1 (car forma)]
 +                [p2 (cadr forma)] )
 +            (send dc draw-line (:x p1) (:y p1) (:x p2) (:y p2))
 +            (desenha dc (cdr forma) cor) ) )
 +       )
 +
 +
 +    (define quad1 '( (0 0) (0 100) (100 100) (100 0) (0 0)))
 +    (define quad2 '( (100 200) (100 300) (200 300) (200 200) (100 200)))
 +
 +    (define cena (list quad1 quad2))
 +
 +    (define (repaint dc)
 +        (for ([forma cena])
 +            (desenha dc forma "green")
 +            )
 +        )  
 +
 +    (define frame (new frame%
 +                       [label "Tela"]
 +                       [width 400]
 +                       [height 400]))
 +
 +    (new canvas% [parent frame]
 +                 [paint-callback
 +                  (lambda (canvas dc)
 +                    (repaint dc)
 +                    )])
 +
 +    (send frame show #t)
 +
 +
 +        
 +Obs : Mais informacao dos funcoes do desenha em Racket sao aqui : http://docs.racket-lang.org/draw/overview.html    
 +
temas/programacao/fp.txt · Última modificação: 2017/04/26 20:45 por phil