Если вы хотите изменить только аргументы внутри функции, тогда вашего подхода в описании достаточно.
Однако, если вам нужно рассматривать его как истинный «ссылочный» тип и сохранять изменениядопустимый вне функции, вы можете обернуть аргументы в классе дела, например:
case class Ref[A](var value: A)
и использовать его следующим образом:
def modify(refInt: Ref[Int]) = refInt.value = 3
Затем, когда вы используете refInt.value
внефункция, она все равно будет 3.