« Return to Thread: idea: val x, y {... x = ... y = ...}

Re: idea: val x, y {... x = ... y = ...}

by Ricky Clarkson :: Rate this Message:

Reply to Author | View in Thread

point {
  val a = 1 + 2
  val b = 3 + 4
  (a + 1, a + b, a - b)
}

I know it looks like I'm just being picky, but I'm encouraging you to
give a use case.  Perhaps this is one:

val (x, y, z) = {
  val a = 1 + 2
  val _x = a + 5
  val _y = _x + 3
  val _z = _y * 4
  (_x, _y, _z)
}

2009/5/21 Rob Dickens <arctic.bob@...>:

> So maybe I should have written,
> def scalaVersion() {
>   val (x, y, z) = {
>     val a = 1 + 2
>     val _x = a + 1
>     val b = 3 + 4
>     val _y = a + b
>     val _z = a - b
>     (_x, _y, _z)
>   }
>   point(x, y, z)
> }
> 2009/5/21 Ricky Clarkson <ricky.clarkson@...>
>>
>> val (x, y, z) = {
>>  val a = 1 + 2
>>  val b = 3 + 4
>>  (a + 1, a + b, a - b)
>> }
>>
>> 2009/5/21 Rob Dickens <arctic.bob@...>:
>> > Dear Martin and All,
>> > One good thing Java still has going for it IMO is its ability, thanks to
>> > its
>> > 'blank finals', always to let you confine the scope of local variables
>> > to
>> > where they're used - thus resulting in more maintainable code.
>> > For example,
>> > void javaVersion() {
>> >   final int x, y, z; {
>> >     final int a = 1 + 2;
>> >     x = a + 1;
>> >     final int b = 3 + 4;
>> >     y = a + b;
>> >     z = a - b;
>> >   }
>> >   point(x, y, z);
>> > }
>> > To my knowledge, this is currently best translated as,
>> > def scalaVersion() {
>> >   val (x, y, z) = {
>> >     val a = 1 + 2
>> >     val _x = a + 1
>> >     val b = 3 + 4
>> >     (_x, a + b, a - b)
>> >   }
>> >   point(x, y, z)
>> > }
>> > Note the requirement for the shadow val, _x.
>> > Assuming it were feasible to support, and imagining cases with more
>> > complex
>> > expressions, wouldn't the following syntax be more agreeable?
>> > def scalaxVersion() {
>> >   val x, y, z {
>> >     val a = 1 + 2
>> >     x = a + 1
>> >     val b = 3 + 4
>> >     y = a + b
>> >     z = a - b
>> >   }
>> >   point(x, y, z)
>> > }
>> > --
>> > Rob, Lafros.com
>
>

 « Return to Thread: idea: val x, y {... x = ... y = ...}