commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruno P. Kinoshita" <ki...@apache.org>
Subject Re: [functor] Change default arity of Function, Predicate and Procedure
Date Wed, 30 Jan 2013 17:58:05 GMT
I think it makes sense and is clear what is does.

I thought in using {arity}Operation, but in Java 8 there are interfaces like BinaryOperator,
and BinaryOperator extends BiFunction, so it would be confusing to users having something
like interface BinaryFunction extends BinaryOperation in [functor].
 
Bruno P. Kinoshita
http://kinoshita.eti.br
http://tupilabs.com


----- Original Message -----
> From: Matt Benson <gudnabrsam@gmail.com>
> To: Bruno P. Kinoshita <brunodepaulak@yahoo.com.br>
> Cc: Commons Developers List <dev@commons.apache.org>
> Sent: Wednesday, January 30, 2013 1:29 PM
> Subject: Re: [functor] Change default arity of Function, Predicate and Procedure
> 
> What about:
> 
> Arity (Marker)
> |_Nullary extends Arity
> |_Unary<A> extends Arity
> |_Binary<L, R> extends Arity
> 
> ?
> 
> Matt
> 
> 
> On Tue, Jan 29, 2013 at 6:09 PM, Bruno P. Kinoshita <
> brunodepaulak@yahoo.com.br> wrote:
> 
>>  In Haskell you define your functions and its arity.
>> 
>>  // nullary function
>>  a :: () => () -> String
>>  a = "Hello World"
>> 
>>  // unary function
>>  b :: (Integral c) => c -: String
>>  b x = "Hello Integral"
>> 
>>  I think in Clojure and Scala you can define the arity of the function too.
>> 
>>  For the users of [functor] I think it would be easier to migrate their
>>  code to Java 8, or use it with Java 8, if both [functor] and Java 8
>>  Function classes had similar behaviour. That would be interesting
>>  especially if the lambda project provided a backport jar.
>> 
>>  [functor] and lambda project provide 1 and 2 arities by default, but
>>  lambda doesn't provide nullary interfaces (or at least I couldn't 
> find them
>>  in java.util.functions).
>> 
>>  Cheers
>> 
>>  Bruno P. Kinoshita
>>  http://kinoshita.eti.br
>>  http://tupilabs.com
>> 
>> 
>>  ----- Original Message -----
>>  > From: Matt Benson <gudnabrsam@gmail.com>
>>  > To: Commons Developers List <dev@commons.apache.org>; Bruno P.
>>  Kinoshita <brunodepaulak@yahoo.com.br>
>>  > Cc:
>>  > Sent: Tuesday, January 29, 2013 8:57 PM
>>  > Subject: Re: [functor] Change default arity of Function, Predicate and
>>  Procedure
>>  >
>>  > What about in pure functional languages e.g. Haskell?
>>  >
>>  > Matt
>>  >
>>  >
>>  > On Tue, Jan 29, 2013 at 4:55 PM, Bruno P. Kinoshita <
>>  > brunodepaulak@yahoo.com.br> wrote:
>>  >
>>  >>  Hi all,
>>  >>
>>  >>  In Java 8 and Guava the default arity of a Function is 1, but in
>>  [functor]
>>  >>  it is 0, IOW, in Java 8 and Guava a Function is by default a
>>  UnaryFunction,
>>  >>  while in [functor] it is a NullaryFunction.
>>  >>
>>  >>  What do you guys think of changing the default arity of Function,
>>  >>  Procedure and Predicate in [functor] to 1, rather than 0?
>>  >>
>>  >>  Cheers
>>  >>
>>  >>  Bruno P. Kinoshita
>>  >>  http://kinoshita.eti.br
>>  >>  http://tupilabs.com
>>  >>
>>  >>  
> ---------------------------------------------------------------------
>>  >>  To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>>  >>  For additional commands, e-mail: dev-help@commons.apache.org
>>  >>
>>  >>
>>  >
>> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message