0
ich folgende Fehler bekommenOrd in implizite Definition, Fehler mit Wachen
Prelude> abs n | n>=0 = n+100 | otherwise =n
Prelude> abs 10
110
Prelude> abs -1
<interactive>:44:1: error:
* Non type-variable argument in the constraint: Num (t -> t)
(Use FlexibleContexts to permit this)
* When checking the inferred type
it :: forall t. (Ord t, Num (t -> t), Num t) => t -> t
- Warum gibt es
Ord
in implizite Typdefinition? - Was der Fehler sagt?
- Was ist falsch in der Definition?
Die Lösung besteht darin, '-1' in Klammern zu setzen, z.B. 'abs (-1)', das liegt an Haskells Parsing, jemand anders kann besser erklären als ich die anderen Fragen. – Zpalmtree
'abs -1' zu Haskell sieht aus wie" abs - 1 ", als ob" abs "eine Zahl wäre, das ist die Eigenart von Haskells Parsing @ Zpalmtree. – AJFarmar