| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 10:15:32
|
rufostec
Thread.start()
Membro desde: 24/08/2006 16:02:14
Mensagens: 46
Offline
|
ainda vou entender com mais carinho as closures, ainda não entendi um uso no meu dia a dia.
Vendo o Mauricio com essa foto malvada ai acho que vou ver o Scala que só ouvir falar rsss
eu não paro de estudar desde os meus 16 anos e to com 30 rsss, já foi tantas linguagens.
|
Sun Certified Java Programmer 1.4
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 10:19:19
|
luistiagos
Forum Spammer
![[Avatar]](/images/avatar/98785ca89cfbbe933921bfe68a94553b.jpg)
Membro desde: 10/07/2006 10:37:23
Mensagens: 2392
Offline
|
hum... ja ate sei do que as proximas edições da javamagazine e mundojava iram falar...
po deveriam colocar ponteiros na linguagem.... sinto falta dos ponteiros...
This message was edited 1 time. Last update was at 11/08/2008 10:20:57
|
SCJP 1.5
SCJA 1.0
IBM DB2 Associate
Next Target -> IBM Object Oriented Analysis and Design |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 10:38:58
|
Ssalgado
JavaTeenager
Membro desde: 11/04/2005 12:51:05
Mensagens: 192
Offline
|
luistiagos wrote:
po deveriam colocar ponteiros na linguagem.... sinto falta dos ponteiros...
Curiosidade: Que falta eles te fazem no dia a dia ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 10:46:04
|
victorwss
Forum Spammer
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2355
Localização: São Paulo - SP
Offline
|
Ssalgado wrote:
luistiagos wrote:
po deveriam colocar ponteiros na linguagem.... sinto falta dos ponteiros...
Curiosidade: Que falta eles te fazem no dia a dia ?
Acho que ele estava sendo irônico.
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Mestrando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68%
Próximos: SCJD (encalhado com o projeto), SCBCD (estudando), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model). |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 10:47:43
|
fantomas
Forum Spammer
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1253
Localização: Terra (maior parte do tempo)
Offline
|
É....também achei isso curioso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 10:51:39
|
Ssalgado
JavaTeenager
Membro desde: 11/04/2005 12:51:05
Mensagens: 192
Offline
|
victorwss wrote:
Ssalgado wrote:
luistiagos wrote:
po deveriam colocar ponteiros na linguagem.... sinto falta dos ponteiros...
Curiosidade: Que falta eles te fazem no dia a dia ?
Acho que ele estava sendo irônico.
Se sim, foi mal. hehe
Se não, ainda estou curioso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 11:23:49
|
**Popeye12345**
Forum Spammer
Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline
|
Alguém pra falar de ponteiros em Java só pode estar sendo irônico mesmo. rs
|
unnamed.
there are so many monkeys at guj. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 11:55:26
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline
|
Uma coisa que seria interessante em closures é se eu pudesse fazer currying também.
Não cheguei a brincar suficientemente com o protótipo final (e olhe que eu estou acompanhando isso desde as primeiras propostas do Gafter), mas eu gostaria de fazer algo semelhante ao que posso fazer no Boost:
onde "boost::bind" é um template que efetua o currying de MyReadHandler, passando a "this" o ponteiro para função-membro "MyClass::MyReadHandler", e então passando os parâmetros a essa função-membro: error e bytes_transferred.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 13:41:26
|
fantomas
Forum Spammer
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1253
Localização: Terra (maior parte do tempo)
Offline
|
thingol wrote: Uma coisa que seria interessante em closures é se eu pudesse fazer currying também.
Não cheguei a brincar suficientemente com o protótipo final (e olhe que eu estou acompanhando isso desde as primeiras propostas do Gafter), mas eu gostaria de fazer algo semelhante ao que posso fazer no Boost:
view plaincopy to clipboardprint?
1. #include <boost/asio.hpp>
2. ...
3.
4. boost::asio::async_read (socket, boost::asio::buffer (buf, 0, nbytes),
5. boost::bind (&MyClass::MyReadHandler, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
#include <boost/asio.hpp> ... boost::asio::async_read (socket, boost::asio::buffer (buf, 0, nbytes), boost::bind (&MyClass::MyReadHandler, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
onde "boost::bind" é um template que efetua o currying de MyReadHandler, passando a "this" o ponteiro para função-membro "MyClass::MyReadHandler", e então passando os parâmetros a essa função-membro: error e bytes_transferred.
????? ??????
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 13:42:53
|
**Popeye12345**
Forum Spammer
Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline
|
fantomas wrote:
thingol wrote: Uma coisa que seria interessante em closures é se eu pudesse fazer currying também.
Não cheguei a brincar suficientemente com o protótipo final (e olhe que eu estou acompanhando isso desde as primeiras propostas do Gafter), mas eu gostaria de fazer algo semelhante ao que posso fazer no Boost:
view plaincopy to clipboardprint?
1. #include <boost/asio.hpp>
2. ...
3.
4. boost::asio::async_read (socket, boost::asio::buffer (buf, 0, nbytes),
5. boost::bind (&MyClass::MyReadHandler, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
#include <boost/asio.hpp> ... boost::asio::async_read (socket, boost::asio::buffer (buf, 0, nbytes), boost::bind (&MyClass::MyReadHandler, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
onde "boost::bind" é um template que efetua o currying de MyReadHandler, passando a "this" o ponteiro para função-membro "MyClass::MyReadHandler", e então passando os parâmetros a essa função-membro: error e bytes_transferred.
?????  ??????
Tambem não entendi bulhufas. Mas sei que é porque ainda não estamos no nivel Yoda, somos padawans ainda. Quero virar Jedi até o fim do ano, mas Yoda... rs... Tá dificil!
|
unnamed.
there are so many monkeys at guj. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 14:00:19
|
peczenyj
Moderador
![[Avatar]](/images/avatar/299dc35e747eb77177d9cea10a802da2.jpg)
Membro desde: 26/03/2006 23:25:37
Mensagens: 2763
Localização: Rio de Janeiro
Offline
|
No aguardo de um post elucidativo e didático.
|
http://pacman.blog.br
'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.' |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 15:15:24
|
TangZero
JavaGuru
Membro desde: 23/01/2007 16:00:46
Mensagens: 269
Localização: São Paulo
Offline
|
Sergio Figueras wrote:
fantomas wrote:
thingol wrote: Uma coisa que seria interessante em closures é se eu pudesse fazer currying também.
Não cheguei a brincar suficientemente com o protótipo final (e olhe que eu estou acompanhando isso desde as primeiras propostas do Gafter), mas eu gostaria de fazer algo semelhante ao que posso fazer no Boost:
view plaincopy to clipboardprint?
1. #include <boost/asio.hpp>
2. ...
3.
4. boost::asio::async_read (socket, boost::asio::buffer (buf, 0, nbytes),
5. boost::bind (&MyClass::MyReadHandler, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
#include <boost/asio.hpp> ... boost::asio::async_read (socket, boost::asio::buffer (buf, 0, nbytes), boost::bind (&MyClass::MyReadHandler, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
onde "boost::bind" é um template que efetua o currying de MyReadHandler, passando a "this" o ponteiro para função-membro "MyClass::MyReadHandler", e então passando os parâmetros a essa função-membro: error e bytes_transferred.
?????  ??????
Tambem não entendi bulhufas. Mas sei que é porque ainda não estamos no nivel Yoda, somos padawans ainda. Quero virar Jedi até o fim do ano, mas Yoda... rs... Tá dificil!
Me senti um merda agora......
|
TangZero
-SCJP 6
-SCWCD 5
-SCBCD 5
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 15:51:20
|
renatosilva
Forum Spammer
![[Avatar]](/images/avatar/cf63547fadc1aa6e897a62291e0cb124.jpg)
Membro desde: 16/12/2004 17:09:19
Mensagens: 1785
Offline
|
peczenyj wrote:Isso eu achei interessante:
Sem o @Shared eu recebo um warning, nada mais do que justo!
Deveria ser o contrário, com o @Shared: Warning: too many gambiarras
This message was edited 1 time. Last update was at 13/08/2008 22:30:01
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 16:33:10
|
victorwss
Forum Spammer
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2355
Localização: São Paulo - SP
Offline
|
renato3110 wrote:
peczenyj wrote:Isso eu achei interessante:
Sem o @Shared eu recebo um warning, nada mais do que justo!
Deveria ser o contrário, com o @Shared: Warning: too much gambiarras
O Shared é uma gambiarra para permitir que o closure altere o valor da variável local.
CHUTE: ACHO que isso pode ser implementado pelo compilador criando um objeto oculto no método, transformando a variável local em um atributo deste objeto oculto e fazendo tanto o método quanto o closure usar este atributo. Quando o método termina, o objeto contendo o atributo ainda existe no heap, até que o coletor de lixo o descarte.
Quando a variável é final, sem problemas. O compilador faz o mesmo que ele faz atualmente com classes anônimas. Mas quando não é, essa manobra do compilador resolve o problema.
Aliás, isso não serve apenas para closures. Pode ser usado para classes anônimas também, resolvendo o problema do "annoying final".
Daí, aquele erro de compilação de que a variável local deveria ser final se reduziria a uma warning (porque provavelmente o compilador fará algo que faz com que a variável local deixe de ser de fato apenas uma variável local). Daí o @Shared funciona mais ou menos como um @SuppressWarnings para isso.
Edit: BTW closures são reduzidos pelo compilador em classes anônimas que posteriormente são reduzidas a classes internas e por fim a classes normais com visibilidade de pacote.
This message was edited 1 time. Last update was at 11/08/2008 16:35:31
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Mestrando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68%
Próximos: SCJD (encalhado com o projeto), SCBCD (estudando), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model). |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2008 19:12:16
|
Bruno Laturner
Forum Spammer
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 2717
Localização: Cuiabá, MT
Offline
|
thingol wrote:Uma coisa que seria interessante em closures é se eu pudesse fazer currying também.
Não cheguei a brincar suficientemente com o protótipo final (e olhe que eu estou acompanhando isso desde as primeiras propostas do Gafter), mas eu gostaria de fazer algo semelhante ao que posso fazer no Boost:
onde "boost::bind" é um template que efetua o currying de MyReadHandler, passando a "this" o ponteiro para função-membro "MyClass::MyReadHandler", e então passando os parâmetros a essa função-membro: error e bytes_transferred.
Isso é currying de função ou pré-configuração do objeto?
Currying em Java só no dia que tivermos objetos-Função/Bloco
|
|
|
 |
|
|