Durante a última turma de formação Rails, surgiu uma dúvida relativa a algumas idéias do mundo funcional que Ruby utiliza. É comum o uso do método returning em Rails para dar uma mão e permitir acessar um objeto, além de retorná-lo:
É uma idéia comum no mundo funcional, podendo ser pensada da seguinte maneira: precisamos executar diversos processos com efeito colateral mas estamos interessados em um único retorno.
Uma implementação comum nesse mundo seria:
Ao invocarmos k_comb com uma série de funções, somente a primeira possuirá seu valor retornado: todas as outras são executadas e seu retorno é ignorado. Por isso uma consequência direta é que ao usar tal padrão, estamos fazendo uso de efeitos colaterais.
O Ruby 1.9 já fazia:
Com o tappie o ruído da variável extra pode ser removido, indo além da implementação do Ruby e do Rails, de uma maneira bem simples:
Usar tais recursos de linguagens funcionais no mundo orientado a objetos de Ruby ajuda a diminuir o ruído semântico da linguagem, mas ao mesmo tempo é possível ir ainda além do que a linguagem Ruby nos fornece. Esse exemplo de implementação de k_combinator é uma possível extensão para o próprio Ruby.
Outras bibliotecas fornecem exemplos de funções como operadores.



24 de maio de 2011 às 0:15
Now I feel stupid. That’s cerlead it up for me
21 de maio de 2012 às 12:32
Not really. While Rails is a frrmewoak and PHP a language, PHP’s frrmewoaks are a lot more bloated than Rails, especially Zend and Cake. Rails leaves a lot of that to plugins and gems, which makes it very lean. I do think Rails should be compared to PHP as I reckon most ppl who write PHP don’t use frrmewoaks, and perhaps rightfully so, because PHP isn’t geared towards complex application design. It’s probably the most simple language for creating a hello world .