[erlang-questions] LFE - Lisp Flavoured Erlang released
Mats Cronqvist
mats.cronqvist@REDACTED
Tue Mar 11 09:31:38 CET 2008
Kevin Scaldeferri wrote:
> On Mar 10, 2008, at 11:32 PM, Hynek Vychodil wrote:
>
>
>> On Tue, Mar 11, 2008 at 12:25 AM, Kevin Scaldeferri <kevin@REDACTED
>>
>>> wrote:
>>>
>> On Mar 10, 2008, at 3:44 PM, Kevin Scaldeferri wrote:
>>
>>
>>> On Mar 10, 2008, at 2:11 PM, Torbjorn Tornkvist wrote:
>>>
>>>
>>>> Perhaps a stupid question. Do LFE implement currying?
>>>> If not, why?
>>>>
>>>> I want currying... :-)
>>>>
>>>>
>>> Here's something I threw together in a couple minutes:
>>>
>>> %% F({a,b}) -> F'(a,b)
>>> curry(F, Arity) ->
>>> if
>>> Arity =:= 1 -> fun(A) -> F({A}) end;
>>> Arity =:= 2 -> fun(A,B) -> F({A,B}) end;
>>> Arity =:= 3 -> fun(A,B,C) -> F({A,B,C}) end;
>>> Arity =:= 4 -> fun(A,B,C,D) -> F({A,B,C,D}) end;
>>> Arity =:= 5 -> fun(A,B,C,D,E) -> F({A,B,C,D,E}) end;
>>> true -> throw(unsupported_arity)
>>> end.
>>>
>>>
IANACS(*), but i thought currying was supposed to look like this;
curry(F,Arg) ->
case erlang:fun_info(F,arity) of
{_,1} -> fun() -> F(Arg) end;
{_,2} -> fun(A) -> F(A,Arg) end;
{_,3} -> fun(A,B) -> F(A,B,Arg) end;
{_,4} -> fun(A,B,C) -> F(A,B,C,Arg) end
end.
mats
(*) I Am Not A Computer Scientist
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mats_cronqvist.vcf
Type: text/x-vcard
Size: 179 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080311/2cc98ea6/attachment.vcf>
More information about the erlang-questions
mailing list