Tôi là người mới bắt đầu và tôi đang cố gắng thực hiện một số hướng dẫn trên Haskell trước khi nhập uni cho khoa học máy tính.không thể khớp với loại mong muốn (Int -> Int -> Int) với loại thực tế `(t0, t1, t2) '
Tôi bị kẹt trong chương trình này. Phải mất ba số và đặt chúng theo thứ tự tăng dần. Bất cứ ai có thể giúp tôi và cho tôi biết whats sai vì nó lái xe cho tôi điên? Cảm ơn vì đã dành thời gian cho tôi.
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))
Lỗi này là:
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)]
Bạn có thực sự sẽ được làm Haskell (hoặc một số loại FP) trong trường đại học? Tôi ước tôi đã nhận được điều đó trong chương trình của mình! – MatrixFrog