我是一名初學者,我正在嘗試在輸入uni之前做一些關於Haskell的教程計算機科學。無法匹配預期類型(Int - > Int - > Int),其實際類型爲'(t0,t1,t2)'
我被卡在這個程序中。它需要三個數字並按升序排列。任何人都可以幫助我,告訴我什麼是錯的,因爲它讓我瘋狂?謝謝你的時間。
import Prelude hiding (min,max)
orderTriple :: (Int -> Int -> Int) -> (Int -> Int -> Int)
max :: Int -> Int -> Int -> Int
min :: Int -> Int -> Int -> Int
middle :: Int -> Int -> Int -> Int
max x y z
|(x>=y) && (x>=z) = x
|(y>=x) && (y>=z) = y
|otherwise = z
min d e f
|(d<=e) && (d<=f) = d
|(e<=d) && (e<=f) = e
|otherwise = f
middle g h i
| (g <= (max g h i)) && (g >= (min g h i)) = g
| (h <= (max g h i)) && (h >= (min g h i)) = h
| otherwise = i
orderTriple (a,b,c) = ((min a b c),(middle a b c),(max a b c))
的錯誤是:
orderList.hs:23:13:
Couldn't match expected type `[Int -> Int -> Int]'
with actual type `(t0, t1, t2)'
In the pattern: (a, b, c)
In an equation for `orderTriple':
orderTriple (a, b, c) = [(min a b c), (middle a b c), (max a b c)]
你居然要在大學裏做Haskell(或某種FP)?我希望我已經在我的程序中獲得了這一點! – MatrixFrog