
25 juin 2010 à 13 h 30
Samuel Tardieu dans
TD
Calculatrice RPN
Une calculatrice RPN travaille avec une pile. Les opérations (par exemple l’addition) travaillent avec les valeurs au sommet de la pile et les y remettent (comme en Factor).
Le but de cet exercice est de factoriser un maximum de code et de limiter la duplication.
Types de base
Le mot-clé « type » permet de déclarer [...]

24 juin 2010 à 23 h 14
Samuel Tardieu dans
Corrigé
module Cours1 where
– Importation explicite du prélude en excluant certaines constructions :
– – Maybe et tous ses constructeurs
– – repeat
import Prelude hiding (Maybe(..), repeat)
– Équivalence entre opérateurs et fonctions. Par exemple, (+) est la
– fonction correspondant à l’addition et `f` ci-dessous est la version
– opérateur de la fonction f.
x `f` y [...]

18 juin 2010 à 13 h 30
Samuel Tardieu dans
TD
Aujourd’hui, nous allons nous intéresser au client IRC de Factor ainsi qu’à ses possibilités d’analyser des expressions selon une grammaire EBNF.
Client IRC
En s’inspirant de la documentation du client de chat IRC, créez un client qui :
se connecte sur le serveur « irc.freenode.net » et rejoins le channel « #inf355″ ;
récupère les messages envoyés sur le channel et puisse [...]

18 juin 2010 à 11 h 05
Samuel Tardieu dans
Cours
pre.code {
border:1px dashed #ccc;
background-color:#f5f5f5;
padding:5px;
font-size:150%;
color:#000000;
}
.NULL {
color: #000000;
}
.COMMENT1 {
color: #cc0000;
}
.COMMENT2 {
color: #ff8400;
}
.COMMENT3 {
color: #6600cc;
}
.COMMENT4 {
color: #cc6600;
}
.DIGIT {
color: #ff0000;
}
.FUNCTION {
color: #9966ff;
}
.INVALID {
background: #ffffcc;
color: #ff0066;
}
.KEYWORD1 {
color: #006699;
font-weight: bold;
}
.KEYWORD2 {
color: #009966;
font-weight: bold;
}
.KEYWORD3 {
color: #0099ff;
font-weight: bold;
}
.KEYWORD4 {
color: #66ccff;
font-weight: bold;
}
.LABEL {
color: #02b902;
}
.LITERAL1 {
color: #ff00cc;
}
.LITERAL2 {
color: #cc00cc;
}
.LITERAL3 {
color: #9900cc;
}
.LITERAL4 {
color: #6600cc;
}
.MARKUP {
color: #0000ff;
}
.OPERATOR {
color: #000000;
font-weight: bold;
}
body, button {
font:9pt « Lucida Grande », « Lucida Sans [...]

11 juin 2010 à 13 h 30
Samuel Tardieu dans
TD
Préambule
Il est conseillé de faire l’échauffement avant d’attaquer les autres parties du TD. Vous avez ensuite le choix entre les tours de Hanoï (très simple) ou les engrammes (peu compliqué). Bien entendu, vous pouvez faire les deux si vous le souhaitez.
Échauffement
Définir la fonction « fact » calculant la factorielle d’un nombre. Cette fonction devra retourner 1 [...]

10 juin 2010 à 23 h 05
Samuel Tardieu dans
Cours
pre.code {
border:1px dashed #ccc;
background-color:#f5f5f5;
padding:5px;
font-size:150%;
color:#000000;
}
.NULL {
color: #000000;
}
.COMMENT1 {
color: #cc0000;
}
.COMMENT2 {
color: #ff8400;
}
.COMMENT3 {
color: #6600cc;
}
.COMMENT4 {
color: #cc6600;
}
.DIGIT {
color: #ff0000;
}
.FUNCTION {
color: #9966ff;
}
.INVALID {
background: #ffffcc;
color: #ff0066;
}
.KEYWORD1 {
color: #006699;
font-weight: bold;
}
.KEYWORD2 {
color: #009966;
font-weight: bold;
}
.KEYWORD3 {
color: #0099ff;
font-weight: bold;
}
.KEYWORD4 {
color: #66ccff;
font-weight: bold;
}
.LABEL {
color: #02b902;
}
.LITERAL1 {
color: #ff00cc;
}
.LITERAL2 {
color: #cc00cc;
}
.LITERAL3 {
color: #9900cc;
}
.LITERAL4 {
color: #6600cc;
}
.MARKUP {
color: #0000ff;
}
.OPERATOR {
color: #000000;
font-weight: bold;
}
body, button {
font:9pt « Lucida Grande », « Lucida Sans [...]

4 juin 2010 à 15 h 10
Samuel Tardieu dans
Cours
package net.rfc1149.cours2
import scala.actors.{Actor,Futures,Scheduler,TIMEOUT}
import Futures._
// Demonstration of object unbuilding using unapply.
// This will be used for pattern matching.
object TripleOf {
def apply(n: Int): Int = 3 * n
def unapply(n: Int): Option[Int] =
if (n % 3 == 0) Some(n/3) else None
}
// Simple matching returning a boolean, no possibility of variable [...]

4 juin 2010 à 13 h 30
Samuel Tardieu dans
TD
Dans la continuation du cours d’aujourd’hui, nous allons maintenant jouer avec les acteurs Scala et le pattern matching (à travers les « case class » ou « unapply ») pour coder le comportement des clients d’une auberge. Les différents personnages seront codés en utilisant des acteurs séparés. On pourra, à la fin, y rajouter un soupçon de XML.
Les personnages
Le [...]

30 mai 2010 à 23 h 35
Samuel Tardieu dans
Administratif
Voici quelques idées de projets pour cette année. N’hésitez pas à en proposer d’autres ou à adopter un projet (en postant un commentaire). Tous les langages non-mainstream et non-jouet sont envisageables.
Application pour Android en Scala
À l’instar de HarassMe, on développera une application pour Android en Scala. L’application devra, avec l’aide de sbt, utiliser les bibliothèques [...]

26 mai 2010 à 07 h 30
Samuel Tardieu dans
TD
Dans ce TD, nous allons mettre en œuvre les concepts illustrés par Alexandre lors du cours de la semaine dernière. On pourra consulter la documentation en ligne de Scala, ainsi que le livre Programming Scala disponible également en ligne.
Pour faire le TD, vous aurez besoin d’installer sbt (simple build tool). Une fois ceci fait, récupérez [...]
Commentaires récents