Parcours
/
F#
F#
/
Exercices
/
Niveaux de logs
Niveaux de logs

Niveaux de logs

Exercice d'apprentissage

Introduction

Les strings

En F#, une string est un objet qui représente du texte immuable sous la forme d'une séquence de caractères Unicode (lettres, chiffres, ponctuation, etc.) et se définit comme suit :

let fruit = "Apple"

Les strings se manipulent soit en appelant les méthodes de la string, soit en utilisant les fonctions du module String. Une fois qu'une string a été construite, sa valeur ne peut plus jamais changer. Toute méthode ou fonction qui semble modifier une string renvoie en réalité une nouvelle string.

Les strings peuvent être concaténées ou formatées de plusieurs façons différentes.

  • On peut utiliser l'opérateur + pour la concaténation :
let sentence = "Apple" + " is a type of fruit."
  • On peut utiliser la fonction sprintf pour formater du texte en plaçant des marqueurs de position dans un texte de format (%s pour une string) et en fournissant les valeurs en arguments :
let sentence = sprintf "%s is a type of %s." "Apple" "fruit"

Instructions

Dans cet exercice, tu vas traiter des lignes de log.

Chaque ligne de log est une string au format suivant : "[<LEVEL>]: <MESSAGE>".

Il existe trois niveaux de log différents :

  • INFO
  • WARNING
  • ERROR

Tu as trois tâches ; chacune prend une ligne de log et te demande d'en faire quelque chose.

1. Récupère le message d'une ligne de log

Implémente la fonction message pour qu'elle renvoie le message d'une ligne de log :

message "[ERROR]: Invalid operation"
// => "Invalid operation"

Les espaces en début et en fin de chaîne doivent être supprimés :

message "[WARNING]:  Disk almost full\r\n"
// => "Disk almost full"

2. Récupère le niveau de log d'une ligne de log

Implémente la fonction logLevel pour qu'elle renvoie le niveau de log d'une ligne de log, en minuscules :

logLevel "[ERROR]: Invalid operation"
// => "error"

3. Reformate une ligne de log

Implémente la fonction reformat qui reformate la ligne de log, en plaçant le message en premier et le niveau de log après, entre parenthèses :

reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
F# Exercism

Prêt à commencer Niveaux de logs ?

Inscris-toi sur Exercism pour apprendre et maîtriser F# avec 18 concepts148 exercices, et un vrai mentorat humain, le tout gratuitement.