2016-08-06 6 views
0

Aufruf definiert ich eine einfache Funktion, um den Absolutwert einer Zahl zu finden:Unterschiedliches Verhalten, wenn die Funktion in GHCI mit variabler vs Literalzahl

let abs n | n >= 0 = n | otherwise = -n 

Aufruf der Funktion mit einer variablen

Prelude> let x = -10 
Prelude| 
Prelude> abs x 
10 

Berufung die Funktion mit einem Wert

Prelude> abs -10 
<interactive>:65:1: 
    Non type-variable argument in the constraint: Num (a -> a) 
    (Use FlexibleContexts to permit this) 
    When checking that ‘it’ has the inferred type 
    it :: forall a. (Num a, Num (a -> a), Ord a) => a -> a 

Ich verstehe nicht das Versagen der zweiten Invoc aktion. Ich benutze GHCi, Version 7.10.2.

+0

Bitte schreiben Sie einen besseren, präziseren Titel. –

Antwort

4

abs -10 bedeutet eigentlich abs - 10, die Subtraktion von abs und 10.

Sie möchten abs (-10).

+0

Danke, das beantwortet es. – randominstanceOfLivingThing