В SML каждая переменная обозначает ссылку? - PullRequest
0 голосов
/ 23 апреля 2020

В C,

  • каждая переменная обозначает ссылку, и мы можем получить ссылку из переменной с помощью оператора &. например, если int x=1, то &x является ссылкой, обозначенной переменной x.

  • , каждая переменная оценивается в значение, указанное в ссылке. например, x оценивается как 1.

В SML,

  • обозначает ли каждая переменная ссылку? Например, если val y = ref(3), то y обозначает ссылку, которая ссылается на 3. если let val x = 4, что означает x: 4 или ссылка на 4? Можем ли мы получить ссылку, обозначенную переменной x, аналогично & в C?

  • y оценивается как ссылка ref 3, а x - оценивается до 4.

Спасибо.

1 Ответ

2 голосов
/ 24 апреля 2020

Привязка переменной в SML не вводит ссылку. Вы не можете получить ссылку на x в вашем примере. Все ссылки должны быть созданы явно и являются первоклассными значениями. И только такие ссылки являются изменяемыми, привязки - нет.

Другими словами, привязки и ссылки являются полностью независимыми функциями в SML.

...