Two small points of feedback

Howard Lovatt howard.lovatt at
Fri Jan 4 13:31:26 PST 2013

Re naming convention

In my own libraries I consistently use name[Types], which mimics the base generic declaration e.g.:

Callable2<I1, I2, O> { O call(I1 i1, I2 i2); }
Callable2TTL<I1, I2> extends Callable2<I1, I2, Long> { 
  default Long call(I1 i1, I2 i2) { return callTTL(i1, i2); }
  long callTTL(I1 i1, I2 i2);
Callable2LLL extends Callable2TTL<Long, Long> { 
  default long callTTL(Long i1, Long i2) { return callLLL(i1, i2); }
  long callLLL(long i1, long i2);

Sent from my iPad

On 05/01/2013, at 1:42 AM, Stephen Colebourne <scolebourne at> wrote:

> In our regular lunchtime meeting at OpenGamma I posed two questions to
> get feedback:
> 1) "What does this code do"
>  range(1, 10).forEach( (i) -> System.out.println(i) );
> First response "if that doesn't print 1 to 10 then someone needs their
> head examining" (someone working in multiple languages more focussed
> on maths than Java coding)
> Second responses "suppose it might depend"/"have to check docs" (Java
> developers)
> Personally, I think that while it can be explained/documented that it
> is a half-open range, it reads far better in code as a closed range.
> 2) "Which of these corresponds to IntFunction"
>  (int) -> T
>  (T) -> int
> Response chose the first (whereas the codebase has the second).
> Personally I would choose the first (and use FuncInt, FunctionInt,
> CalcInt, CalculatorInt or IntCalculator for the second).
> (poll highly unscientific, respondents had limited/no exposure to
> lambdas, yada yada yada)
> Stephen

More information about the lambda-dev mailing list