Estou tentando aprender mais sobre Erlang do que os projetos de brinquedos com os quais estou jogando. Para esse fim, estou lendo Programming Erlang e alguns arquivos da Armstrong on Software .
Também gostaria de ler sobre um exemplo de código (de preferência produção) que mostra o tipo de coisas que você pode criar com o Erlang que seriam desproporcionalmente difíceis em outros idiomas. Além de (eu suponho) Yaws , existem exemplos publicamente disponíveis do belo código Erlang que eu poderia ler para obter uma melhor compreensão do idioma e / ou ver os usos idiomáticos de várias construções de idioma?
Eu especificamente estou não olhando para o código que "começa o trabalho feito", mas usa práticas questionáveis, ou exemplos ao longo das linhas de "é aqui como você escreve factorial
em Erlang".
Na mesma linha, alguém pode recomendar alguma boa literatura para aprender esse idioma (além do mencionado "Programming Erlang")? De preferência, algo que você mesmo aprendeu, mas se houver alguns livros padrão da comunidade para ele, jogue-os também.
Respostas:
Outra boa referência é Erlang e OTP em ação .
Sobre os exemplos de código: é meio difícil encontrar práticas recomendadas para Erlang, mas eu sugiro que você tente estes sites:
Verifique os links deste artigo (software de código aberto escrito em erlang) e você poderá encontrar um código interessante.
fonte
Desde que você adicionou a tag programação-funcional, que tal escrever um compilador ou intérprete Erlang em Haskell? Erlang não é mais o estado da arte mais, como é. Eu recomendo aprender Erlang em um ou dois dias, como alguns outros idiomas (LISP, Prolog), e depois esquecê-los; eles são apenas um passo para desaprender linguagens imperativas de OOP.
Para tarefas menores do que implementar um compilador, consulte Project Euler .
[EDIT] Para responder ao comentário:
Do ponto de vista técnico: Erlang era bom nos velhos tempos, quando não havia processadores multicore. Mas agora - dados os compiladores / intérpretes existentes dos quais tenho conhecimento -, ele não aumenta mais como deveria. Um intérprete escrito em Haskell escalaria, compilado em Haskell tornaria mais rápido, mas removeria o recurso de substituição de código em tempo real.
Do ponto de vista dos programadores: Haskell não é a melhor opção para todas as tarefas aplicáveis, mas, atm, as linguagens provavelmente mais avançadas são muito experimentais e essas tarefas não aplicáveis geralmente têm a ver com sistemas embarcados (como microcontroladores e GPUs) ou numbercrunching, onde C e Assembler ainda são a melhor escolha.
O que exatamente é algo que você poderia fazer com Erlang melhor do que em outros idiomas?
fonte