Exercício – funções

Concluído

Neste exercício, você tornará o código reutilizável. É um código que outro programador da sua equipe criou, mas seu trabalho é transformá-lo em funções.

Criar funções

Comece fazendo scaffolding de um novo projeto F# e, depois, transforme uma parte do código em uma função com parâmetros.

  1. Crie um projeto F# executando dotnet new.

    dotnet new console --language F# -o Functions
    cd Functions
    

    Agora que você tem um novo projeto, vamos dar uma olhada no código.

    Este é o código do seu colega.

    let no = card % 13
    if no = 1 then "Ace"
    elif no = 0 then "King"
    elif no = 12 then "Queen"
    elif no = 11 then "Jack"
    else string no
    
  2. Substitua o código padrão no arquivo Program.fs pelo seguinte código:

    let cardFace card = 
       let no = card % 13
       if no = 1 then "Ace"
       elif no = 0 then "King"
       elif no = 12 then "Queen"
       elif no = 11 then "Jack"
       else string no
    

    A primeira linha desse código let cardFace card transforma ele em uma função. Agora ele é uma função chamada cardface() que usa o parâmetro card.

  3. Adicione o código a seguir abaixo da função cardface().

    printfn "%s" (cardFace 11)
    
  4. Execute o projeto chamando dotnet run no console.

    dotnet run
    

    Agora, a seguinte saída será exibida:

    Jack
    

Parabéns! Você pegou uma parte do código que queria deixar reutilizável e transformou-a em uma função.

Adicionar tipos

Você transformou o código do seu colega em uma função. Para deixar esse código mais legível, você decide adicionar definições de tipo a ele.

  1. Modifique sua função cardface() existente para que ela tenha a seguinte aparência:

    let cardFace (card:int) = 
        let no = card % 13
        if no = 1 then "Ace"
        elif no = 0 then "King"
        elif no = 12 then "Queen"
        elif no = 11 then "Jack"
        else string no
    
  2. Agora execute o projeto dotnet run.

    dotnet run
    

    Agora, a seguinte saída será exibida:

    Jack
    

    O código funciona da mesma forma e você o tornou mais claro, adicionando um tipo ao parâmetro de entrada.

  3. Altere sua função cardface() para que ela tenha a seguinte aparência:

    let cardFace (card:int) :string = 
        let no = card % 13
        if no = 14 || no = 1 then "Ace"
        elif no = 13 then "King"
        elif no = 12 then "Queen"
        elif no = 11 then "Jack"
        else string no
    

    Neste ponto, você adicionou um tipo de retorno à função :string, o que significa que a função retorna uma cadeia de caracteres.

  4. Execute o projeto dotnet run.

    dotnet run
    

    Mais uma vez, você verá a seguinte saída:

    Jack
    

Parabéns! Agora, o código contém tipos adicionados.