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 `**‘
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 `**‘
Sie kann ^
verwenden, um auf eine integrale Leistung zu erhöhen. Es ist nicht notwendig, hier zu floaten.
Danke, es scheint zu funktionieren :) – MMM
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
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. –