我们说我有这段代码:
<?xml version="1.0" encoding="utf-8"?>
<ImageView
android:id="@+id/imageView"
android:src="@drawable/interst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android" />
显然,结果是整数,因为x或其后继是偶数
可以理解的是,编译器只查看demo::Integer -> Integer
demo x = x*(x+1)/2
main = do print $ demo 8
并说
/
但据我所知,[1 of 1] Compiling Main ( debug.hs, debug.o )
debug.hs:2:17:
No instance for (Fractional Integer) arising from a use of `/'
Possible fix: add an instance declaration for (Fractional Integer)
In the expression: x * (x + 1) / 2
In an equation for `demo': demo x = x * (x + 1) / 2
不属于Integer
。
如何保留签名Fractional
?
答案 0 :(得分:5)
您不能将/
功能与Integer
一起使用。如果您想要经典的整数除法,请使用div
。