我可以写一个函数的类型签名吗?如果可以,应该怎么写呢?
g f x y = (f x, f y)
鉴于:
f1 :: a -> [a]
f1 x = [x]
x1 :: Int
x1 = 42
c1 :: Char
c1 = 'c'
f2 :: Int -> Int
f2 x = 3 * x
x2 :: Int
x2 = 5
如下:
g f1 x1 c1 == ([42], ['c']) :: ([Int], [Char])
g f2 x1 x2 == (126, 15) :: (Int, Int)
f
的类型,因此我猜您也需要使用类型族 - 如果这对您来说没问题,那么应该是可能的 - 当然这只是一个猜测 - 我所知道的是有一种表达方式 ;) - Random Devf2
不再是forall a,而只是针对Int
。 - Random Dev