Haskell Type Error bei einfacher Funktion

Xerxes18

Lieutenant
Dabei seit
Aug. 2008
Beiträge
654
Hallo,

warum habe ich bei dieser einfachen Funktion folgenden Fehler:

ERROR file:.\test.hs:11 - Type error in explicitly typed binding
*** Term : ball
*** Type : Float -> (Float,a)
*** Does not match : Float -> Float

Hier der Code :

ball :: Float -> Float
ball x = ((square x) / square 9,81) * sin ((1+ sqrt 5 )/2)

Danke im voraus!
 

Xerxes18

Lieutenant
Ersteller dieses Themas
Dabei seit
Aug. 2008
Beiträge
654
Oh stimmt, danke für den Hinweis hat funktioniert, aber jetzt habe ich ein anderes Problem:

Bei z.B. 150 kommt 233.5329 heraus. Auf dem Taschenrechner jedoch 6.60. Da stimmt doch wieder etwas nicht,oder?

Edit:

Ich glaube ich weiß wo der Fehler liegt:

Wenn ich z.B. den Sinus von 5 ausrechne kommt irgendwas mit -0.987 aber im taschenrechner kommt bei sin(5) etwas mit 0,8 heraus. Rechnet Haskell das etwas falsch?
 
Zuletzt bearbeitet:

NullPointer

Lt. Commander
Dabei seit
Okt. 2009
Beiträge
1.570
Haskells sin-Funktion interpretiert das Argument nicht als Gradangabe, sondern als Radians. Du müßtest den Wet also vorher umrechnen (Grad * pi / 180 = rad).
 
Top