Scheme

Páginas: 6 (1404 palavras) Publicado: 4 de setembro de 2013
Scheme é uma linguagem interativa. Isso significa que quando digito alguma coisa o programa me escreve algo de volta. Posso, por exemplo, inserir um único elemento, ou uma expressão matemática.

STk> 7
7

Inserir 7 me devolve 7, pois o valor de 7 é 7.

STk> (+ 5 9)
14

Nesse exemplo, estamos a perguntar ao programa qual o valor da soma entre 5 e 9, que me devolve, portanto, 14. Porém,o que exatamente acabamos de fazer?

Sabemos que existem várias formas de se representar uma expressão matemática. Em Scheme, contudo, o seguinte formato é utilizado:

(função argumento argumento)

dentro de parênteses.

Em scheme, parênteses são de suma importância.

Inserir um símbolo ou número entre parênteses em Scheme significa "chame a função representada por tal símbolo". Inserirum símbolo ou nome correspondente a uma função fora de parênteses significa "me diga o valor de tal simbolo", que seria algo totalmente diferente. Por exemplo:

STk> (/)
*** Error:
/: no argumenent given

Inserir o símbolo de divisão dessa forma resulta em um erro, pois estou a chamar uma função de divisão que espera dois parâmetros. No caso, não mandei nenhum.

STk> /
#[subr /]Inserir o símbolo de divisão dessa forma não resulta em um erro, pois não chamei a função representada pelo símbolo, e sim perguntei o valor daquele símbolo.

Funções em Scheme podem ser representadas tanto por símbolos (+, -, *) como palavras (sqrt). Exemplos:

STk> (+ 4 4)
8
STk> (* 2 2)
4
STk> (/ 4 2)
2
STk> (sqrt 2)
1.4142135623731
STk>

Podemos também criar funções personalizadas ouassociar valores a palavras especificas.

STk> (define pi 3.1415)

Associa a palavra pi a um numero.

Agora posso usar pi em expressões.

STk> (* pi 5 5)
78.5375
STk>

Criando funções

Em Scheme, criamos funções da seguinte forma:

(define (square x)
(* x x))

Definição de uma função chamada square que recebe apenas um argumento (x). Tal função multiplica um número por elemesmo.

Posso agora utilizar a palavra square em expressões, que chamará o procedimento ao qual foi associada.


STk> (square 5)
25
STk> (square (+ 5 5))
100
STk>

Linhas não são importantes em Scheme. Uma expressão começa com um parêntese de abertura e acaba com um parêntese de fechamento, independente do número de linhas ocupadas. Definimos funções utilizando mais de uma linha real porconvenção.

Chamar a função square com dois ou mais argumentos resulta em um erro, pois a definimos como uma função que recebe apenas um.

STk> (square 5 5)
*** Error:
too many arguments to: (square 5 5)
STk>

Outras funções, como + e *, aceitam vários parâmetros:

STk> (* 2 4 6 8 10 12)
46080

Algumas funções foram implementadas para retornar algo quando chamadas sem nenhumargumento:

STk> (*)
1

Outras resultam em erro:

STk> (/)
*** Error:
/: no argumenent given
STk>

Além de números, Scheme nos permite trabalhar como palavras, frases e letras (átomos). Utilizar ‘ antes de uma palavra, letra, frase, número ou expressão em Scheme resulta não no resultado de tal expressão, por exemplo, mas sim na expressão propriamente dita. Por Exemplo:

STk> (+ 2 2)
4
STk>'(+ 2 2)
(+ 2 2)
STk>

Utilizamos ‘() para designar uma frase, e apenas ‘ para palavras. Por exemplo:

STk> '(Hello World)
(hello world)
STk>
STk> 'Hello
hello

Tentar citar uma frase como uma palavra resulta em erro:

STk> 'Hello World
hello
*** Error:
unbound variable: world
STk>

Scheme, através da utilização de parênteses, identifica e diferencia funções de argumentos:(* 2 3)
No exemplo, a função seria * e seus argumentos 2 e 3.

Podemos também utilizar resultados de expressões como argumentos. Tal fato nos permite criar programas em Scheme. Por exemplo:

(+ (* 2 3) (*10 10))

(* 2 3) é a expressão do argumento real da função soma, que seria 5.

Utilizamos editores inteligentes de texto, como Emacs, para facilitar a contrução de expressões em Scheme,...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • help scheme
  • Lista Scheme
  • A linguagem Scheme
  • Linguagem de programação scheme
  • Artigo Linguagem Scheme
  • Introdução à linguagem Scheme
  • Artigo
  • Scheme E Common Lisp

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!