私はhaskellを初めて使い、オペランドを使用しようとしています。`max 'の使用に起因する(Ord a0)のインスタンスがありません
function strangeMathsは、3つの関数とオペランドを使用して、logBase 2((max x)^ 3)のようにsmthでなければなりません。 ので、私は、このコード
strangeMaths = f . g . h
f = logBase 2
g = (^3)
h = max
をしましたが、これは私にエラー与える:
No instance for (Ord a0) arising from a use of `max'
The type variable `a0' is ambiguous
Relevant bindings include
h :: a0 -> a0 -> a0 (bound at 14)doItYourSelf.hs:7:1)
Note: there are several potential instances:
instance Integral a => Ord (GHC.Real.Ratio a)
-- Defined in `GHC.Real'
instance Ord() -- Defined in `GHC.Classes'
instance (Ord a, Ord b) => Ord (a, b) -- Defined in `GHC.Classes'
...plus 23 others
In the expression: max
In an equation for `h': h = max
Failed, modules loaded: none.
P.S.を私はそのlog(a、b^c)= c * log(a、b)を知っていますが、これは一例です。
私はこれがあなたを噛んでいる独特の制限だと思います。 – melpomene
「最大x」は何を意味しますか? 'max'は1つではなく2つの引数をとります。このコードは意味をなさない。 – AJFarmar