Feature #16799
Updated by jackmaple (maple jack) over 4 years ago
Classes are currently first-class citizens in Ruby, but functions are not. This leads to a situation where the function calls are not uniform, for example: ``` ruby def boo(x) return x end boo2 = -> x { x } a = boo 10 b = boo2.call(10) or b = boo2.(10) or b = boo2[10] ``` This is very confusing to people from other languages (JavaScript, Python, etc.), or people who are just starting to learn ruby. If the method calling format can be unified, and the method is also a first-class citizen, then a higher-order function can be realized, and the method name is just a variable,so maybe more things can be done,and it might be better if the lambda is changed to the following form,for example(suppose): ``` ruby method1 = (f,n) -> f(n) or method1 = (f,n) -> { return f(n) } or method1 = (f,n) -> do return f(n) end #call method result = method1(x -> x * 2,10) #result = 20 2,2) ``` Although the syntax change is not good, it makes ruby easier to use. These are just some of my thoughts, thanks.