|
| 1 | +##Resumo aula dia 17, Matheus Turatti - Haskell |
| 2 | + |
| 3 | +##Gleam |
| 4 | + |
| 5 | +É uma linguagem recente, criada em 2019, que utiliza o Erlang BEAM, criada pelo britânico Louis Pilfold, a linguagem atualmente encontra-se na sua versão beta. |
| 6 | +Gleam é uma linguagem funcional, estaticamente tipada, todas as estruturas de dados são imutáveis, porém a linguagem não é puramente funcional. |
| 7 | +Louis criou a linguagem em cima de quatro pilares: segurança, amigável, performática e Erlang. |
| 8 | +Gleam une a segurança de um robusto sistema de tipos estáticos com a confiabilidade da BEAM. |
| 9 | +O compilador da Gleam tem como objetivo oferecer feedbacks claros e úteis sobre qualquer tipo de problema encontrado. |
| 10 | +Gleam foi construída em cima da máquina virtual do Erlang e traz consigo toda a otimização oferecida por ela e ao mesmo tempo busca tornar o uso de códigos escritos em outras linguagens BEAM o mais fácil possível. |
| 11 | + |
| 12 | +##Purescript |
| 13 | + |
| 14 | +É uma linguagem transpilada para Javascript, no qual um programa escrito em Purescript é primeiramente transformado em Javascript para então ser compilado JIT como tal. |
| 15 | +Foi criado em 2013 por Phil Freeman, atualmente a linguagem é open source e contém 138 contrubintes, deles 3 são empresas. |
| 16 | +A linguagem é definida como puramente funcial, ela é eager language, fortemente tipada, inspirada em Haskell, é case sensitive e identation sensitive. |
| 17 | +Como foi inspirada em Haskell, a linguagem dispensa parenteses para definições e chamadas de funções, possui Structs disponíveis para uso. |
| 18 | +Purescript possui um compilador iterativo chamado Spago repl, similar a ferramenta iex de Elixir, contudo é necessário importar Prelude. |
| 19 | +Prelude é um módulo que contém as operações mais básicas aritméticas, sem ele não é possível sequer realizar operações simples de cálculo. |
| 20 | + |
| 21 | +##Miranda |
| 22 | + |
| 23 | +Uma linguagem puramente funcional, declarativa de avaliação preguiçosa de tipagem forte e estática. |
| 24 | +Criada em 1985, foi criada por David Turner e desenvolvida pela empresa Research Software Ltd. |
| 25 | +Atualmente a lingua não é mais desenvolvida e parece ter um foco voltado aos fundamentos básicos de um paradigma funcional. |
| 26 | +Miranda funciona através de scripts, onde a ordem das funções não é relevante. |
| 27 | +Possui como estruturas internas listas encadeadas e tuplas, em que não é permitido misturar tipos diferentes numa mesma lista e tupla permite mais que dois elementos de tipos diferentes. |
| 28 | +Através do comando mira é possível ativar o shell interativo do Miranda. |
| 29 | +Através de arquivos de script é possível concatenar variáveis e funções e criar um novo programa desordenado. |
| 30 | + |
| 31 | +##Clojure |
| 32 | + |
| 33 | +Uma linguagem feita em dialeto de Lisp, criado para funcionar na JVM, o ambiente de bytecode de Java. |
| 34 | +Criada por Rich Hickey, atualmente é mantida por Cognitect, sua versão atual é 1.10.0. |
| 35 | +Sua estrutura dialético Lisp, é feita em bases de listas, composta por uma invocação com uso de parenteses, uma função e seus argumentos. |
| 36 | +Clojure não é puramente funcional, pois chamadas de funções podem resular em efeitos colaterais em suas invocações. |
| 37 | +Como linguagem funcional, tudo é uma expressão e em sua maioria evita efeitos colaterais para poder melhor usufruir de cálculos simultanêos. |
| 38 | +Possui uma boa interoperabilidade com Java, pois foi criada em cima da JVM. |
| 39 | +Seu compilador interativo é chamado REPL, cuja funcionalidade é semelhante aos iex do Elixir. |
| 40 | + |
| 41 | +##Elm |
| 42 | + |
| 43 | +Uma linguagem de tipos inferidos que busca eliminar erros que ocorrem em tempo de execução. |
| 44 | +Elm é uma linguagem funcional que compila para JavaScript, útil ao considerar que boa parte da web utiliza JavaScript atualmente. |
| 45 | +Criada por Evan Czaplicki em 2012, foi consequência de uma tese de conclusão de curso para unir paradigma funcional no escopo de interfaces gráficas. |
| 46 | +Possui um repositório aberto no github e atualmente contém 5 colaboradores, responsáveis por evoluir a linguagem. |
| 47 | +Entre suas principais funcionalidades se encontra estruturas de dados persistentes e interoperabilidade HTML, CSS e JavaScript. |
| 48 | +Também usufrui de uma arquitetura própria, em que um programa Elm é dividido em três partes: Model, View e Update |
| 49 | +Model é o estado da aplicação, View é uma função que transforma o Model em HTML e Update são funções que atualizam o Model com base em mensagens passadas em tempo de execução. |
| 50 | +Possui tipagem estática e tipos inferidos, contudo possui sistemas de anotação para ajudar na legibilidade de código. |
0 commit comments