Petit projet pour aider à faire les Dojos (puzzle/quizz/...) du PSUG
Scala
Pull request Compare This branch is 2 commits ahead, 4 commits behind psug:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
README.md
pom.xml

README.md

Mini projet pour experimenter les "Dojos" du PSUG (Paris Scala User Group).

Les Dojos sur la mailing-list

Objectifs

Les objectifs sont de s'amuser, d'apprendre Scala et d'échanger autour de petits problèmes.

Il n'y a rien à gagner, juste le plaisir de chercher et aucune obligation de jouer.

"Règles"

Pour chaque problème, il faut essayer de trouver (tout ou une partie) :

  • une implémentation de la méthode pour satisfaire l'exemple et le cas général.
    • Elle peut être élégante, optimisée (mem, cpu), surprenant, original, ...
    • Elle peut utiliser une fonction existante dans une lib (connaitre les lib et framework est important aussi)
    • essayer ne pas envoyer de solution avant 16H
  • un test (unitaire, fonctionnel, charge/bench) pour les implementations de solution

    • Il peut utiliser des framework de test/bench existant (eg scalacheck, specs2, scalatest, junit)
    • Il peut être envoyer dès l'annonce du problème et sans solution.
  • Les Problèmes sont "publiés" tous les jours du lundi au vendredi sur la mailing-list du PSUG (Paris Scala User Group) (à l'heure du déjeuner +/-).

  • Il y a 1 à 3 problèmes par jour
  • Vous pouvez proposer et discuter des solutions en répondant sur le Thread du message avec le problème.
  • Tous les messages du dojo ont un sujet de la forme "[Dojo] P (<*>) : " donc assez facile à filtrer sur vos clients email.
    • xxx : numéro du problème
    • * : "difficulté" du problème
    • label : libellé du problème (en anglais ou français)

Les 99 premiers problèmes proviennent de http://aperiodic.net/phil/scala/s-99/

Le projet sur github

Objectifs

  • un peu flou ;-)
  • "garder" les règles
  • fournir un projet de base pour tester du code pour les Dojos (avec toutes les libs).
  • éventuellement, stocker certaines solutions
  • le projet est une aide, aucune obligation de l'utiliser, ou d'y placer son code source

Modalités

Une version modifiée de https://github.com/psug/dojos.git qui utilise Maven et Specs2. Il faut avoir installer Scala et avoir "scala" dans le PATH. L'interpreteur (REPL) etant le principal outil.

La version de scala utilisée est 2.9.0-1.

Toutes les contributions sont les bien-venues, donc pour ceux qui connaissent git/github (fork + pull-request), pour les autres patch ou fichiers par email (sur la ml) ou ticket.

scala> :load src/p001.scala
Loading src/p001.scala...
defined module p001
import p001._

    http://groups.google.com/group/paris-scala-user-group/browse_thread/thread/eac9319f94b244a8

    P01 (*) Find the last element of a list.
    Example:
    scala> last(List(1, 1, 2, 3, 5, 8))
    res0: Int = 8


scala> BenjaminLerman.last(List(1, 1, 2, 3, 5, 8))
res0: Option[Int] = Some(8)


scala> ...