【发布时间】:2016-11-14 15:31:57
【问题描述】:
我试图理解下面的类型
Prelude> :t map(10$)
map(10$) :: Num (a -> b) => [a] -> [b]
【问题讨论】:
-
你对它有什么理解?你有什么难以理解的地方?
-
在这种情况下无法理解 Num(a-> b) 的含义?函数类型的 Num 实例?我最近开始学习haskell,到目前为止我看到了 Num 一个类型但没有看到 Num (函数)。
-
(10 $)是一个函数,(10 $) x = 10 $ x = 10 x。这要求10是a -> b类型,因为一般函数应用是(f :: a -> b) (x :: a) :: b。在 Haskell 中,数字文字的类型为Num a => a,这意味着 any 类型为a,它是 in 类型类Num。因此(10 $)的类型必须是(Num a) => (a -> b)。事实上,这不是一个普遍的情况。您可能不是想让10用作函数。 -
你是对的@WillNess,我的意思是 10 作为一个函数,我只是想了解 map 函数和美元运算符如何在不同的组合中工作。谢谢
-
@duplode 我尝试了很多来查找有关 ($) 的文档,但没有运气,如果您能指出我将不胜感激。非常感谢