我开始使用Miran Lipovaca着名的书来学习Haskell ,但是在与格拉斯哥Haskell编译器的交互式shell(ghci)的第一次交互中,我的好奇心阻止了我.
特别是,我开始通过划分两个整数来获得浮点十进制数,基本上看看Haskell如何自动管理它们并了解更多关于它的自动转换.
?> 1/3
0.3333333333333333
?> 4/3
1.3333333333333333
?> 3424/3
1141.3333333333333
Run Code Online (Sandbox Code Playgroud)
这些告诉我Haskell总共使用了17位数字(或18个字符,包括点?),无论它们是否重要.然而,这些也发生了
?> 14/3
4.666666666666667
?> 34/3
11.333333333333334
?> 44/3
14.666666666666666
Run Code Online (Sandbox Code Playgroud)
为什么第一个缩短一位数?为什么其他人错误地四舍五入?
可能这是一个愚蠢的问题,但我想知道这些基本事情的答案,我可以从更深入地理解语言(或翻译?)的工作方式开始,通过了解更多内容.