elmord.org » Git repositories
aboutsummaryrefslogtreecommitdiff

Clone or download

  • Download the latest version as a ZIP or tarball
  • Clone with: git clone https://elmord.org/cgit/faz.git

Faz: uma linguagem funcional didática

Faz é uma linguagem funcional didática baseada no português, que eu desenvolvi como trabalho de conclusão da graduação. O exemplo abaixo dá uma idéia da linguagem:

função bhaskara(a ∈ Números, b ∈ Números, c ∈ Números) -> Listas de Números
    # Dados os coeficientes de uma equação de segundo grau,
    # retorna uma lista com suas raízes reais.
    seja delta = b^2 - 4*a*c
    se delta < 0
        devolve []
    senão
        seja x1 = (-b + raiz(delta)) / (2*a)
        seja x2 = (-b - raiz(delta)) / (2*a)
        se delta == 0
            devolve [x1]
        senão
            devolve [x1, x2]

A linguagem foi implementada sobre o ambiente Racket, provavelmente não da melhor maneira possível.

Instalação

  • Instale o ambiente Racket (apt-get install racket no Debian e derivados, ou baixe do site do Racket).
  • Clone este repositório no diretório de instalação desejado.
  • Execute: raco link <caminho-do-diretório>
  • Execute: raco setup faz

Uso

Para usar a linguagem, abra o ambiente DrRacket, abra a tela de seleção de linguagem (atalho: Ctrl+L), "Other languages", e "Faz". A seguir dê "Run" para pôr a linguagem em efeito.

Bugs

Vários; este código estava no esquecimento desde 2013 e só o estou trazendo à tona novamente agora, mas não estou trabalhando ativamente nele. Se você tem interesse em utilizar a linguagem, queira entrar em contato.

Licença

Copyright © 2013, 2018 Vítor Bujés Ubatuba De Araújo

Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (à sua escolha) qualquer versão posterior.

Este programa é distribuído na esperança de que seja útil, porém SEM QUALQUER GARANTIA, incluindo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a GNU General Public License para mais detalhes.

Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Caso não tenha, veja https://www.gnu.org/licenses/.