Curso Livre de Algoritmos e Programação/Guile: Estruturas de Seleção

Fonte: Wikiversidade

Guile: Estruturas de Seleção[editar | editar código-fonte]

As entidades com valores #t e #f são designadas de booleanas e as expressões de que resultam booleanos são designadas de predicados. Por exemplo, (< 30 40) é um predicado com valor #t, pois 30 e menor que 40, e (< 30 20) e um predicado com valor #f, pois 30 não é menor que 20. Outra forma do Scheme, if: (if expressão-predicado expressão-consequente expressão-alternativa) A regra de cálculo da forma especial if é a seguinte: Calcular a expressão-predicado; Se resultar #t, é calculada a expressãoconseqüente; Se resultar #f, é calculada a expressão-alternativa. As funções de relação disponibilizadas pelo Scheme são: > (maior), < (menor), = (igual), >= (maior ou igual), e <= (menor ou igual).

Exemplos:

> (if (> 5 12) 8 9)

9

>(if (<= 5 1) 3 4)

4

A regra de cálculo da forma especial cond á a seguinte: Calcular os predicados, começando por predicado1, até encontrar um predicado com valor #t; logo que se encontre um predicado #t, calcular as expressões correspondentes. Se não encontrar qualquer predicado com valor #t, calcular as expressões correspondentes a else

(define identificador expressão) Exemplo: > (define lado 5) lado Acabou de ser criado o identificador lado, com o valor 5 associado. Isto pode ser verificado ao pedir o cálculo do seu valor. > lado 5

É possível criar novas funções. Em vez de ligar um número a um identificador, como se fez em lado, vamos agora associar uma tarefa específica. Por Exemplo a função dobro, que recebe um valor numérico qualquer e devolve o dobro desse valor: (define dobro ;definido o nome da função (lambda (x) ;x é o único parâmetro. (* 2 x))) ;aqui a função é definida Na definição desta função, o valor que deve ser dobrado pode ser qualquer valor numérico, ele foi então representado simbolicamente por x. Diz-se que x é um parâmetro da função, neste caso, o único parâmetro da função. A chamada da função quadrado faz-se colocando entre parênteses o nome da função, seguido do argumento. > (dobro 3) 6 Na chamada (dobro 3), o valor 3 é o argumento. Este valor será associado ao parâmetro x, sendo devolvido (* 2 3) igual a 6, pois a definição de dobro é (* 2 x). > (dobro (+ 3 2)) 10 Nesta chamada, primeiro é calculado o valor de (+ 3 2), que é 5, e depois é calculado o dobro. Forma genérica de uma função: (define nome-da-função (lambda (parametro-1 parametro-2 ...) corpo-da- função ))