linh <nguyenlinh.m...@gmail.com> writes:

> # ruby code
> def foo(x, y)
>   x + y
> end
>
> def bar
>   [1, 2]
> end
>
> foo(*bar) # this is fine, the result will be 3
> foo(bar) # this is not ok, will raise exception
>
> bar returns an array of size 2, but foo expects 2 parameters not an
> array.

In Clojure, this would look something like:

  (defn foo [x, y]
    (+ x y))
  (def bar [1, 2])

  (apply foo bar) ;; becomes (foo 1 2), or 3
  (foo bar)       ;; errors out

Pretty close to Ruby, actually. The apply function calls the first
argument (a function) with the rest of the arguments to apply becoming
the argument list to the first function. In Clojure you see functions
being passed as arguments to other functions a lot; this is the biggest
difference from the Ruby version.

-Phil

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to