Scala list pattern matching in value declaration -


assuming following list of 4 tuples:

> def getlist = list( (1,2), (3,4), (5,6), (7,8) ) 

i want parse 3 sections in new values declaration - the last tuple (l1,l2), the penultimate tuple (p1,p2) , the rest of list rest.

moreover, i'd pattern-match tuples well. example:

> val (rest :: (p1, p2) :: (l1, l2) ) = getlist rest = list( (1,2), (3,4) ) p1 = 5 p2 = 6 l1 = 7 l2 = 8 

the expected output not work because :: expects list right-side argument. tried several different possibilities such ::: list wrapper. however, haven't managed achieve goal.

is possible? don't want reverse list - instead, i'm looking elegant solution applicable value declaration (thus no match please). hope in one-line solution.

edit: scala code runner version 2.9.2

you use :+ matcher object:

val rest :+ ((p1, p2)) :+ ((l1, l2))  = getlist 

it's the part of standard library since scala 2.10

for previous version redefine using source


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -