Объявите несколько привязок переменных в одной строке в SML

Можно ли объявить несколько привязок переменных в одной строке в SML? Например, у меня есть следующее:

let
    val m1 = [1]
    val m2 = [2]
    val m3 = [3]
in
    {...}
end

Я хотел бы сжать это до чего-то вроде

let
    val m1 = [1], m2 = [2], m3 = [3]
in
    {...}
end

Этот синтаксис не работает, но есть ли способ объявить несколько привязок переменных в одной строке?

Введение в одну из самых важных концепций в React - функциональное программирование
Введение в одну из самых важных концепций в React - функциональное программирование
React разработан с использованием концепции функционального программирования, поэтому понимание функционального программирования важно для изучения...
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Что такое Java 8 Streams API? Java 8 Stream API
0
0
56
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете создать кортеж и сразу деструктурировать его.

let
  val (m1, m2, m3) = ([1], [2], [3])
in
  ...
end
Ответ принят как подходящий

Вот два способа:

- let val x = 1 val y = 5 in x + y end;
val it = 6 : int
- let val x = 1 and y = 5 in x + y end;
val it = 6 : int

Лично я нахожу небольшое злоупотребление and более читабельным.
Тем не менее, я думаю, что метод «деструктурирующего связывания» более распространен, чем любой из них, поскольку он также более полезен в целом.

- let val (x, y) = (1,5) in x + y end;
val it = 6 : int
- fun f x = (x, x + 2, x + 3);
val f = fn : int -> int * int * int
- let val (x, y, z) = f 3 in x + z end;
val it = 9 : int

Другие вопросы по теме