auf einem 64-Bit-System Int64 sollte in Ordnung sein, weiß ich zwar nicht sicher.
Noch wichtiger, wenn Sie Crypto oder Random-Number-Generierung tun Sie MUSS verwenden Sie den Datentyp, den der Algorithmus sagt zu verwenden, auch vorsichtig sein, unterzeichnet-Ness. Wenn Sie dies nicht tun, haben Sie die falschen Ergebnisse, was bedeuten könnte, dass Ihre Kryptographie nicht sicher ist oder Ihr Zufallszahlengenerator nicht wirklich zufällig ist (Zufallszahlen sind hart, und viele sehen zufällig aus).
Für jede andere Art von Arbeit verwenden Sie Integer, wo immer Sie können, oder noch besser, machen Sie Ihr Programm polymorph mit der Integral-Klasse. Dann, wenn Sie denken, dass Ihr Programm langsamer ist als es sein sollte Profil es zu bestimmen, wo Sie konzentrieren sollten, wenn Sie versuchen, es zu beschleunigen. Wenn Sie die Integral-Klasse verwenden, ist der Wechsel von Integer zu Int einfach. Haskell sollte intelligent genug sein, um (den meisten) Code zu spezialisieren, der Polymorphismus verwendet, um Overheads zu vermeiden.
Ich würde 'Integer' als ersten Versuch empfehlen. – Gabe
Ich brauche eine feste Wortgröße für die Implementierung von Xorshift, also ist Integer keine andere Wahl. – fuz
Ich würde verwenden, welche von "Int32" und "Int64" besser für Ihren RNG-Algorithmus geeignet ist. Erstellen Sie ein Typ-Synonym, damit Sie es später problemlos testen können. Beachten Sie auch, dass ein "Int" nicht das gleiche wie "Int32" ist (die Haskell-Spezifikation garantiert nur, dass ein "Int" mindestens 31 Bit lang ist). –