Как я могу преобразовать Int64 в тип Int32 на F# без использования Microsoft.FSharp.Compatibility.Int32.of_int64?
Я делаю это, потому что интерактивность, похоже, не работает, когда я пытаюсь:
open Microsoft.FSharp.Compatibility
С FSharp.PowerPack, добавленным в качестве ссылки, говорится:
error FS0039: The namespace 'Compatibility' is not defined.
Редактировать: Есть ли у кого-нибудь ответ на вопрос? Предложения о типах int полезны и информативны, но у меня такая же проблема с открытием пространства имен powerpack в интерактивном F#.





В F# 1.9.6 есть функция преобразования типов, поэтому вы можете сделать это:
let num = 1000
let num64 = int64(num)
Обратите внимание, что в этом типе преобразования, когда вы уменьшаете размер значения, наиболее значимые байты отбрасываются, поэтому ваши данные могут быть усечены:
> let bignum = 4294967297L;;
val bignum : int64
> let myint = int32(bignum);;
val myint : int32
> myint;;
val it : int32 = 1
Обратите внимание, что функции преобразования в каждый целочисленный тип имеют те же имена, что и сами типы, и определены в спецификации библиотеки (см. Ниже). (С выпуском CTP (1.9.6.2) большая часть библиотеки и пространств имен немного изменилась по сравнению с предыдущими выпусками, но, вероятно, в дальнейшем она будет более «стабильной».)
http://research.microsoft.com/fsharp/manual/FSharp.Core/Microsoft.FSharp.Core.Operators.html