https://github.com/iagocarmona/functional-language-algorithms
Repositório para armazenar trabalho da matéria Aspectos de Linguagens de Programação do curso Ciência da Computação utilizando linguagens funcionais e imperativas para comparar desempenhos.
https://github.com/iagocarmona/functional-language-algorithms
comparing-algorithms functional-programming ghci haskell performance-analysis python
Last synced: 3 months ago
JSON representation
Repositório para armazenar trabalho da matéria Aspectos de Linguagens de Programação do curso Ciência da Computação utilizando linguagens funcionais e imperativas para comparar desempenhos.
- Host: GitHub
- URL: https://github.com/iagocarmona/functional-language-algorithms
- Owner: iagocarmona
- Created: 2023-11-10T01:47:14.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-08T19:31:50.000Z (over 1 year ago)
- Last Synced: 2025-01-27T10:11:43.454Z (4 months ago)
- Topics: comparing-algorithms, functional-programming, ghci, haskell, performance-analysis, python
- Language: Haskell
- Homepage:
- Size: 2.64 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# functional-language-algorithms
---
# Primeiro de tudo
- Instale `ghci`
**Ubuntu:** execute o arquivo `install_ghci.sh`.
```bash
./install_ghci
```# Como executar?
```bash
ghci exercises.hs
```### Vai abrir o terminal do `ghci`
### Escreva `main` para mostrar as opções:
```bash
exec01 - Testar se um elemento é membro de uma lista
exec02 - Calcular o tamanho de uma lista
exec03 - Calcular a soma dos elementos de uma lista
exec04 - Calcular o produto dos elementos de uma lista
exec05 - Reversão de lista
exec06 - Testar se duas listas são iguais
exec07 - Concatenação de duas listas
exec08 - Interseção de duas listas
```### Para executar cada exercício, informe sua label. Por exemplo: `exec01` ou `exec03`.
### Para sair do terminal do `ghci` digite `:q` ou `ctrl` + `d`.
# Exemplo de execução
```bash
ghci exercises.hs
```- Você vai entrar no terminal do ghci:
```bash
GHCi, version 9.4.7: https://www.haskell.org/ghc/ :? for help: warning: [-Wmissed-extra-shared-lib]
libgmp.so: cannot open shared object file: No such file or directory
It's OK if you don't want to use symbols from it directly.
(the package DLL is loaded by the system linker
which manages dependencies by itself).
[1 of 2] Compiling Main ( exercises.hs, interpreted )
Ok, one module loaded.
ghci>
```- Digite `main` para ver o menu:
```bash
ghci> main
exec01 - Testar se um elemento é membro de uma lista
exec02 - Calcular o tamanho de uma lista
exec03 - Calcular a soma dos elementos de uma lista
exec04 - Calcular o produto dos elementos de uma lista
exec05 - Reversão de lista
exec06 - Testar se duas listas são iguais
exec07 - Concatenação de duas listas
exec08 - Interseção de duas listas
```- Informe o exercício que deseja executar: Exemplo `exec02`:
```bash
ghci> exec02
Calcular o tamanho de uma lista
Informe uma lista de números separados por espaço
...
```- Informe uma lista: Exemplo: `1 2 3 4 5 6`
```bash
ghci> exec02
Calcular o tamanho de uma lista
Informe uma lista de números separados por espaço
1 2 3 4 5 6
Tamanho: 6
ghci>
```## Como Executar o Quicksort
#### De forma Interpretada com GHCI
- Inicie o interpretador GHCI
```bash
ghci
```- Importe no `ghci` a biblioteca que gera números aleatórios, a biblioteca que realiza o benchmark, o programa a ser executado e execute o programa através da função principal, tudo isso através da sequência de comandos:
```bash
:m System.Random
:set -package criterion
:m Criterion.Main
:l quicksort.hs
main
```#### De forma Compilada com GHC
```bash
ghc -package criterion quicksort.hs
./quicksort
```