Hacker News new | ask | show | jobs
by jamesnvc1 5975 days ago
Ruby's yield is essentially just calling an anonymous function given to it in the form of a block. e.g., the following code snippets are equivalent

Ruby:

    def foo(bar)
      if block_given?
         yield bar
      end
    end

    foo 5 { |x| puts x } # prints 5
Python:

    def foo(bar,fcn):
        fcn(bar)


    foo(5, lambda x: sys.stdout.write("%d\n" % x))
The only real difference being that the ruby code is calling a block versus a "real" function.

edit Oops, had this page open for a while, didn't realize someone had replied in the interim, making my response somewhat redundant