AH
//Position-based
val [first, second, third] = someList
//Name-based
val (foo, bar) = someObject
//Effectively the same code
val (bar, foo) = someObject
Но к сожалению изначально позиционному деструктурированию отданы не те скобки для этого :(
можно так
let a,b = tuple
let head::tail = list
let {Name = name} = someObject //достать поле Name из рекорда (дата класса) и положить в name
а можно сразу на входе в функцию деструктить:
le
t someFunction (a,b) = …это же и для лямбд работает, сразу в аргументах деструктить
let someFunction (head::tail) = …
let someFunction {Name = name} = …