On Sat, Dec 18, 2010 at 7:21 AM, Sunil S Nandihalli <
sunil.nandiha...@gmail.com> wrote:

> Hi Eric,
>  I do know about partial. But what I am saying is that the extra function,
> partial, is not necessary if the function was created with
> def-curry-fn....... The function automatically returns a curried version
> when called with fewer number of arguments than necessary.... like it
> happens in haskell..
> thanks,
> Sunil.
>
> On Sat, Dec 18, 2010 at 3:02 AM, Eric Schulte <schulte.e...@gmail.com>wrote:
>
>> Hi Sunil,
>>
>> This is already possible using `partial' function in clojure core, which
>> also works for variable arity functions, e.g.
>>
>> (map (partial reduce +) [[1 2 3 4] [5 6 7 8]])
>>
>> Best -- Eric
>>
>> Sunil S Nandihalli <sunil.nandiha...@gmail.com> writes:
>>
>> > Hello everybody,
>> >  I remember that the key reasoning for not supporting currying in
>> clojure
>> > was to be able to have variable number of arg functions.. So, I just
>> thought
>> > a bit and realized that it should be possible to do that for fixed arity
>> > functions .. and then wrote the following macro to define a curry-able
>> > fixed-number-of-argument-function
>> >
>> > https://gist.github.com/745654
>> >
>>
> If the following was defined as
(defn f [a b c d]
  (+ a b c d))

>  > (def-curry-fn f [a b c d]
>> >   (+ a b c d))
>> >
>> > ((f 1) 2 3 4)  => 10
>>
> the above s-expression using partial would become ...

((partial f 1) 2 3 4) => 10

>  > (((f 1 2) 3) 4) => 10
>>
>
and ((partial (partial f 1 2) 3) 4) => 10 instead of (((f 1 2) 3) 4)..

((((f 1) 2) 3) 4) => 10
would become
((partial (partial (partial f 1) 2) 3) 4) => 10 .....

I know there is no real practical utility .. .. it was just something I
wrote for fun.. and thought of sharing it ...
Sunil.

>  >
>> > I just thought of sharing it with everybody. Would love to hear any
>> > criticisms you may have.
>> >
>> > Thanks for reading,
>> > Sunil
>>
>> --
>> 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
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com<clojure%2bunsubscr...@googlegroups.com>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>
>
>

-- 
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
Note that posts from new members are moderated - please be patient with your 
first post.
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