Comma Separated Concatenation in LESS

Let's say we have a function that creates a box shadow:

styles.less.shadow(@s) {
  box-shadow: @s;
}

Let's say we want to add two shadows to a block by calling our function twice:

styles.lessp {
  .shadow(1px 1px red); 
  .shadow(2px 2px blue);
}

However, this won't work for us, because calling two shadows will simply add two box-shadow properties:

styles.cssp {
  box-shadow: 1px 1px red;
  box-shadow: 2px 2px blue;
}

And we would like the shadows to be added to one property box-shadow separated by commas, like this:

styles.cssp {
  box-shadow: 1px 1px red, 2px 2px blue;
}

In order for our function to work as described, we need to write the property value after the special operator +:, like this:

styles.less.shadow(@s) {
  box-shadow+: @s;
}
Задание 1

Make a similar function for the text-shadow property.

Задание 2

Make a similar function for the background property.