Uma string em F# é um objeto que representa texto imutável como uma sequência de carateres Unicode (letras, algarismos, pontuação, etc.) e define-se da seguinte forma:
let fruit = "Apple"
Trabalhas com strings chamando os métodos da string ou usando as funções do módulo String. Depois de uma string ser criada, o seu valor nunca pode mudar. Quaisquer métodos ou funções que pareçam modificar uma string vão, na verdade, devolver uma nova string.
Podes concatenar ou formatar strings de várias formas diferentes.
+ para concatenar:let sentence = "Apple" + " is a type of fruit."
sprintf para formatar texto, em que tens marcadores de posição num texto de formatação (%s para uma string) e forneces os valores como argumentos:let sentence = sprintf "%s is a type of %s." "Apple" "fruit"
Neste exercício vais processar linhas de registo.
Cada linha de registo é uma string formatada da seguinte forma: "[<LEVEL>]: <MESSAGE>".
Existem três níveis de registo diferentes:
INFOWARNINGERRORTens três tarefas e cada uma delas recebe uma linha de registo e pede-te que faças algo com ela.
Implementa a função message para devolver a mensagem de uma linha de registo:
message "[ERROR]: Invalid operation"
// => "Invalid operation"
Qualquer espaço em branco no início ou no fim deve ser removido:
message "[WARNING]: Disk almost full\r\n"
// => "Disk almost full"
Implementa a função logLevel para devolver o nível da linha de registo, que deve ser devolvido em minúsculas:
logLevel "[ERROR]: Invalid operation"
// => "error"
Implementa a função reformat que reformata a linha de registo, colocando a mensagem primeiro e o nível de registo depois, entre parênteses:
reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
Inscreve-te no Exercism para aprenderes e dominares F# com 18 conceitos148 exercícios, e mentoria humana real, tudo grátis.