Uma string em F# é um objeto que representa texto imutável, como uma sequência de caracteres Unicode (letras, dígitos, pontuação etc.), e é definida assim:
let fruit = "Apple"
As strings são manipuladas chamando os métodos da própria string ou usando as funções do módulo String. Depois que uma string é construída, seu valor nunca pode mudar. Quaisquer métodos ou funções que pareçam modificar uma string, na verdade, retornam uma nova string.
As strings podem ser concatenadas ou formatadas de algumas maneiras diferentes.
+ para concatenar:let sentence = "Apple" + " is a type of fruit."
sprintf para formatar texto, em que você tem marcadores de posição em um texto de formato (%s para uma string) e fornece os valores como argumentos:let sentence = sprintf "%s is a type of %s." "Apple" "fruit"
Neste exercício, você vai processar linhas de log.
Cada linha de log é uma string formatada assim: "[<LEVEL>]: <MESSAGE>".
Existem três níveis de log diferentes:
INFOWARNINGERRORVocê tem três tarefas, e cada uma delas recebe uma linha de log e pede que você faça algo com ela.
Implemente a função message para retornar a mensagem de uma linha de log:
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"
Implemente a função logLevel para retornar o nível de log de uma linha de log, que deve ser retornado em minúsculas:
logLevel "[ERROR]: Invalid operation"
// => "error"
Implemente a função reformat, que reformata a linha de log colocando a mensagem primeiro e o nível de log depois dela, entre parênteses:
reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
Crie sua conta no Exercism para aprender e dominar F# com 18 conceitos148 exercícios e mentoria humana de verdade, tudo de graça.