да, вы можете
F # spec:
Целочисленные литералы с суффиксами Q, R, Z, I, N, G используются для пользовательских и библиотечных типов посредством следующего синтаксического перевода:
хххх
- Для xxxx = 0 - NumericLiteral.FromZero ()
- Для xxxx = 1 - NumericLiteral.FromOne ()
- Для xxxx в диапазоне Int32 - NumericLiteral.FromInt32 (xxxx)
- Для xxxx в диапазоне Int64 - NumericLiteral.FromInt64 (xxxx)
- Для других чисел - NumericLiteral.FromString ("xxxx")
Например, определение модуля NumericLiteralZ, как показано ниже, позволяет использовать буквенную форму 32Z для генерации последовательности из 32 символов «Z». Для чисел вне диапазона 32-разрядных целых чисел буквальный синтаксис недоступен.
module NumericLiteralZ =
let FromZero() = ""
let FromOne() = "Z"
let FromInt32 n = String.replicate n "Z"
// nullables
open System
module NumericLiteralN =
let FromZero() = Nullable(0)
let FromOne() = Nullable(1)
let FromInt32(i : int) = Nullable(i)
printfn "%A" 0N
printfn "%A" 1N
printfn "%A" 100N.HasValue