2010-05-22 7 views
5

Ich versuche folgendes zu tun:Haskell - wie man Typen gießt?

10 ** length xs * x 

aber ich bekomme:

Kein Beispiel für (Int Floating) entstehen aus einer Verwendung von `**‘

+3

Oh, und nur um ganz klar zu sein: Im Allgemeinen "gießen" Sie Typen in Haskell nicht. Es gibt verschiedene Möglichkeiten, zwischen Typen zu konvertieren, aber keine "Typumwandlungen" im üblichen Sinne. –

Antwort

8

Sie kann ^ verwenden, um auf eine integrale Leistung zu erhöhen. Es ist nicht notwendig, hier zu floaten.

+0

Danke, es scheint zu funktionieren :) – MMM

6

Verwenden Sie neben @sepp2k's answer, wenn Sie irgendwie wirklich von einer ganzen Zahl zu einigen anderen Arten von Num konvertieren müssen, fromIntegral.

-- # fromIntegral :: (Integral a, Num b) => a -> b 

10 ** fromIntegral (length xs) * x 
Verwandte Themen