[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