有人能给我解释一下这个输出吗?我完全是 Haskell 的新手,不知道为什么会出现这种情况。
import Data.Char
o=ord 'f'
main=do print (o==102)
print (mod (102^2087) 9797)
print (mod (o^2087) 9797)
输出:
xxx:~/Arbeitsfläche$ runhaskell st.hs
True
5253
0
使用Ubuntu操作系统,GHC版本为7.4.1。
ord
的类型是Char -> Int
,因此o
是一个Int
。在 Haskell 中,Int
有一个上限,但Integer
没有。 - Snowball