Scala, vale a pena?  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

esmiralha wrote:Martin Odersky vai adicionar STM a Scala... mais um treco na pia da cozinha!!


Tem um framework para STM em Scala mas como a linguagem não é funcional e estruturas de dados não são persistentes não é tão eficiente como em Clojure. Estrutura de dados em Scala são apenas imutáveis.
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Em Scala há 2 tipos de estruturas de dados: as que são mutáveis (no pacote scala.collection.mutable) e as que não o são (em scala.collection.immutable). Como o compilador do Scala é um pouco mais esperto que o do Java, é suficiente escrever:

immutable.Vector

ou

mutable.Vector

em vez de usar

scala.collection.immutable.Vector

http://www.scala-lang.org/sites/default/files/sids/admin/Tue,%202010-07-20,%2010:39/collections.pdf

E de fato, o esquema de mônadas do Haskell é meio difícil de usar para quem está acostumado com Java. O esquema do Scala é muito mais simples nesse ponto.
fredferrao
GUJ Master
[Avatar]

Membro desde: 01/06/2005 13:23:32
Mensagens: 1901
Localização: Brasil
Offline


Monads are elephants

A higher order function is a function that takes a function as a parameter or returns a function as a result. Monads are containers which have several higher order functions defined. Or, since we're talking about Scala, monads have several higher order methods.



Monads

Scala Monads tutorials

Bom como podem ver Scala tambem tem monads. Mais algum pré-requisito para podermos dizer que Scala suporta Programação Funcional?

This message was edited 1 time. Last update was at 08/11/2010 11:31:07


Não respondo dúvidas via MP!
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

entanglement wrote:Em Scala há 2 tipos de estruturas de dados: as que são mutáveis (no pacote scala.collection.mutable) e as que não o são (em scala.collection.immutable). Como o compilador do Scala é um pouco mais esperto que o do Java, é suficiente escrever:

immutable.Vector

ou

mutable.Vector

em vez de usar

scala.collection.immutable.Vector


Estruturas de dados mutáveis não são usadas com STM.
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

fredferrao wrote:
Bom como podem ver Scala tambem tem monads. Mais algum pré-requisito para podermos dizer que Scala suporta Programação Funcional?


Bom, parece que vc mesmo chegou a conclusão que Scala não é uma linguagem funcional, apesar de suportar esse estilo de programação.

esmiralha
JavaEvangelist

Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline

mochuara wrote:
esmiralha wrote:Martin Odersky vai adicionar STM a Scala... mais um treco na pia da cozinha!!


Tem um framework para STM em Scala mas como a linguagem não é funcional e estruturas de dados não são persistentes não é tão eficiente como em Clojure. Estrutura de dados em Scala são apenas imutáveis.


"Scala não é funcional" é uma conclusão e não uma premissa. Acho que é um dos pontos centrais da discussão.

Por favor, explique os seguintes pontos:
Por que as estruturas de dados imutáveis de Scala não seriam também persistentes?
Por que uma estrutura de dados não persistente seria menos "eficiente" do que uma persistente?
Qual o contexto em torno da palavra "eficiente" (eficiente em memória, em CPU...)?

mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

esmiralha wrote:
Por que as estruturas de dados imutáveis de Scala não seriam também persistentes?


Sr Ordesky vai adicionar estrutura de dados persistentes a Scala tb.

Em algum ponto a diferença será apenas na motivação, em Clojure ela resolve um problema, em Scala ela é adicionado como mais uma feature.

This message was edited 2 times. Last update was at 08/11/2010 14:37:35

mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

esmiralha wrote:
"Scala não é funcional" é uma conclusão e não uma premissa. Acho que é um dos pontos centrais da discussão.


O que eu quis dizer é que Scala não é funcional porque suas estruturas de dados não são persistentes.

esmiralha wrote:
Por favor, explique os seguintes pontos:
Por que as estruturas de dados imutáveis de Scala não seriam também persistentes?
Por que uma estrutura de dados não persistente seria menos "eficiente" do que uma persistente?
Qual o contexto em torno da palavra "eficiente" (eficiente em memória, em CPU...)?



Estrutura de dados em Clojure além de imutáveis são persistentes, isto significa que quando "modificadas", as versões anteriores são preservadas e aqueles nós não afetados pela "atualização" são compartilhados com a nova estrutura, ao invés de serem copiadas.
esmiralha
JavaEvangelist

Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline

Scala possui uma implementação "nativa" de vetor e mapa persistentes.
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

esmiralha wrote:Scala possui uma implementação "nativa" de vetor e mapa persistentes.


Já tem? hm... legal. Qual o pacote?
fredferrao
GUJ Master
[Avatar]

Membro desde: 01/06/2005 13:23:32
Mensagens: 1901
Localização: Brasil
Offline

mochuara wrote:
esmiralha wrote:Scala possui uma implementação "nativa" de vetor e mapa persistentes.


Já tem? hm... legal. Qual o pacote?


http://stackoverflow.com/questions/3107151/persistent-data-structures-in-scala

Não respondo dúvidas via MP!
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team