objects - ¿Cómo llamas al operador-> en Ruby?
ruby>= (3)
¿Cómo se llama el operador
->
como se muestra a continuación?->(...) do ... end
¿Los siguientes fragmentos no son equivalentes?
succ = ->(x) {x + 1} succ = lambda {|x| x + 1}
=>
== Hash Rocket
Separa claves de valores en un hash map literal.
->
== Dash Rocket
Se usa para definir un literal lambda en Ruby 1.9.X (sin args) y Ruby 2.X (con args). Los ejemplos que das ( ->(x) { x * 2 }
y lambda { |x| x * 2 }
) son de hecho equivalentes.
Cohete Lambda
Lo obtuve de este artículo. Pero primero una búsqueda en google de taquigrafía de ruby lambda http://ruby-journal.com/becareful-with-space-in-lambda-hash-rocket-syntax-between-ruby-1-dot-9-and-2-dot-0/
En Ruby Programming Language ("Métodos, Procs, Lambdas y Cierres"), una lambda definida usando ->
se llama literal lambda .
succ = ->(x){ x+1 }
succ.call(2)
El código es equivalente al siguiente.
succ = lambda { |x| x + 1 }
succ.call(2)
Informalmente, he oído que se llama stabby lambda o stabby literal .