Linguagem funcional, qual aprender?

12 respostas
Luiz-SP

Então pessoal,

Estou estudando Erlang, mas tem um monte de gente falando do scheme e do haskell, qual dessa três vc's se esforçariam para de aprender? Pq?

12 Respostas

louds

Depende do seu foco. Erlang sem dúvida é a linguagem funcional que mais atenção tem recebido nos últimos anos e junto com F# serão as duas mais citadas esse ano. Profissionalmente são as duas mais úteis. Porém se teu objetivo é aprender linguagens funcionais mais a fundo, Haskell e Scheme são duas ótimas pedidas, ou ainda Caml/OCalm se quiser aprender alguma da linhagem do ML. LISP é interessante mas pessoalmente prefiro Scheme por ser mais exuta e legal de usar.

Erlang toca apenas no básico de linguagens funcionais, mas não deixa de ser muito útil aprendê-la.

leo_ap

Se o seu foco é aprender o paradigma funcional, entre as 3 que você citou, eu acho Haskell uma boa opção, por ser mais simples que Erlang. Quanto ao Scheme posso dizer que é uma variação do Lisp. Acredito que Lisp e Scheme tem uma maior documentação e comunidades na internet. Lisp e Scheme são bem parecidas ao aprender uma fica fácil migrar para a outra. Mas acho que o importante no aprendizado independente da linguagem funcional é você aprender a usar bem a orientação a objetos nesse paradigma.

Luiz-SP

Como assim orientação a objetos dentro de uma linguagem funcional?

Luiz-SP

Alguem já viu esse video? O que vc acham?

Luiz-SP

louds:
Depende do seu foco. Erlang sem dúvida é a linguagem funcional que mais atenção tem recebido nos últimos anos e junto com F# serão as duas mais citadas esse ano. Profissionalmente são as duas mais úteis. Porém se teu objetivo é aprender linguagens funcionais mais a fundo, Haskell e Scheme são duas ótimas pedidas, ou ainda Caml/OCalm se quiser aprender alguma da linhagem do ML. LISP é interessante mas pessoalmente prefiro Scheme por ser mais exuta e legal de usar.

Erlang toca apenas no básico de linguagens funcionais, mas não deixa de ser muito útil aprendê-la.

Vi Lisp no IME/USP com Alan Mitchell numa disciplina chamada “linguagens de programção” passei na matéira, não foi a matéria que eu mais gostei na facul, mas passei, estou achando Lisp MUITO parecida com Erlang, vc poderia me explicar ou indicar onde eu posso ler/aprender o que realmente é uma linguagem funcional e pq List é mais funcional do que Erlang?

louds

LISP não é nem mais funcional nem menos funcional que Erlang. LISP é sem dúvida muito mais chato de aprender no começo. As maiores diferenças é que Erlang é uma linguagem sem destructive assignment, porém sem ser puramente funcional; e por usar pattern matching como base para quase toda tomada de decisão.

leo_ap

Bom só para esclarecer, algumas linguagens funcionais permitem o uso de código orientado a objetos.
Qualquer dúvida eu coloquei links para você conferir a sintaxe:

Lisp: http://www.apl.jhu.edu/~hall/Lisp-Notes/Defclass.html
Haskell: http://www.haskell.org/tutorial/classes.html

Saudades de lidar com linguagem funcional. Só tive essa experiencia na faculdade.
Não vejo grandes possibilidades de conseguir trabalhar usando alguma, é uma pena.

espero ter ajudado.

pcalcado

Siebel diz que (Common) Lisp não é uncional já que objetos ão mutáveis. Eu concordo mas não conheço outras fontes para afirmar nada. O que vocês acham?

louds

Uma linguagem é funcional se ela usar aplicação como sua estrutura básica de controle. Ela é puramente funcional se possuir transparência referencial e tiver efeitos colaterais - acaba fazendo I/O com coisas como monads e agentes externos).

pcalcado
  1. Se tiver ou se não tiver efeitos colaterais?
  2. Referência?
pcalcado

BTW:

http://www.gigamonkeys.com/book/functions.html

cmilfont

Uma linguagem é funcional se ela usar aplicação como sua estrutura básica de controle. Ela é puramente funcional se possuir transparência referencial e tiver efeitos colaterais - acaba fazendo I/O com coisas como monads e agentes externos).

também não entendi essa do efeito colateral, Louds, dá uma clareada aí!

Criado 3 de fevereiro de 2008
Ultima resposta 6 de fev. de 2008
Respostas 12
Participantes 5