Я немного смущен ключевым словом Literal и почему это необходимо в F #.
Чтение документов, мне кажется, что [<Literal>]
используется для определения константы, однако я немного смущен, как эта константа отличается от всех других констант в F #..
Значения, которые предназначены для констант, могут быть отмечены значком Литеральный атрибут. Этот атрибут влияет на значение быть скомпилирован как константа.
Когда я думаю о константе, я думаю о чем-то непреложном....
let x = "a" + "b" //this is a immutable value, its value is constant
[<Literal>]
let y = "a" + "b" //this is also a immutable value, but why is this a special constant?
Это потому, что "нормальные" значения F # оцениваются лениво и [<Literal>]
не оценивается лениво.? это то, что они подразумевают под "скомпилированным как постоянное".? или есть что-то еще?