11.11.08

Dojo 57 – Kata do Blocks

Posted in Dojo, Haskell, Kata at 7:39 am by flores

  • Data: 10/11/2008, no IME – USP
  • Participantes: Pedro, Thiago, Hugo, Jorge, R, Flores, Fabs, Mari, Marcelo, Bruno Gola, Renato, Carlos e Ricardo.
  • Kata: Blocks por Mari
  • Carta da Criatividade: Experimente uma idéia aleatória.
  • Código: Estará disponível em breve.

Warm up

Um primeiro Parking Lot que apareceu foi sobre a numeração atual do Dojo, e acabamos por decidir que esse seria o Dojo 57. Após isso fizemos a escolha do problema. Inicialmente houveram quatro sugestões:

  • Kata do Blocks
  • Randori do Dama
  • Randori do Entertainement
  • Randori do Amigo Secreto: Um programa para sortear amigos secretos com um teste de aleatoriedade.

Fizemos a votação e o Kata ganhou. Perguntaram da onde vinha o problema Blocks, e a Mari nos disse que é o segundo mais fácil do UVA (só perdendo para o 3n+1). Após isso, sorteamos a carta da criatividade: “Experimente uma idéia aleatória”, que falava sobre um médico indígena e estratégias aleatórias de caças.

Coding Time

Inicialmente, a Mari criou o tipo de dados bloco e um construtor. Com os testes passando, foi feita uma refatoração para funcionar com um número arbitrário de blocos.

No Kata, a Mari começou a criar as operações, iniciando com a pile. Para essa operação, foi criada uma função para tirar um bloco do mundo. Depois criou uma função para devolver os blocos ao mundo recebendo o bloco que deveria voltar e sobre que bloco este deveria entrar, depois a implementou a Operação Pile Over. Infelizmente não terminamos o problema, mas por mais que pareça que fizemos pouco, o Hugo nos disse que para terminar tudo só precisaria implementar mais uma função e todo o resto seria simples de se implementar. Para cada implementação de função, estas ficaram meio grandes, mas se tornaram sucintas com uma boa refatoração, o que tornou o código mais fácil de entender.

A sintaxe de Haskell e os recursos funcionais nos deram a oportunidade de aprender coisas novas como o $, let, map, elem, span e outras coisas.

Retrospectiva

Dessa vez, as pessoas receberam os post-its e canetas no início do Dojo, para escreverem os pontos bons e ruins durante o Kata.

Como pontos positivos :-) , os principais temas abordados foram:

  • Haskell e coisas relacionadas a essa linguagem;
  • Boas explicações;
  • BrHackDay ;
  • Pessoas Novas ;
  • Pensar Funcional ;
  • Refatoração Power ;

E como pontos negativos :-( , podemos citar:

  • Haskell e coisas relacionadas a essa linguagem ;
  • Sem testes para o mundo ;
  • Emacs ;
  • Giant Step ;
  • Repositório (foi movido para o Parking Lot) ;
  • Conversa Paralela ;
  • Monads (foi movido para o Parking Lot) ;
  • Moedas do Fabrício;

E para o Parking Lot, os principais temas foram:

  • Discussão do reposítório;
  • Monads;
  • Começar pelo in no let … in (isso é o Where na verdade);
  • Remove recursivo;
  • $ tem precedência mínima;
  • Map, elem;
  • \lambda;
  • Set up para os testes;
  • Stick to time?;
  • Como construir Show e Eq complexos?;

O Dojo teve alguns momentos engraçados, como o Fabricio dar sua contribuição para a Pizza em moedas (gerando o ódio do Hugo), a explicação do Hugo de porquê o \lambda é representado por “\” (“é só tirar o pézinho”), mas a frase da noite foi dirigida ao Fabricio pelo R “Prum cara preguiçoso que nem você, Lazy Evaluation é ótimo”.

RSS feed for comments on this post · TrackBack URL

Leave a Comment