haskell语法混淆 - 函数类型声明
问题描述:
我想通过学习haskell书来学习haskell。我遇到了一个让我困惑的功能,并希望寻找解释。这个功能相当简单。我不明白的是声明函数类型时的第一行。什么(RealFloat a)= & gt;一个 - >一个 - >一个吗?他们为什么用分号分隔?haskell语法混淆 - 函数类型声明
非常感谢。
cylinder :: (RealFloat a) =& gt; a -> a -> a
cylinder r h =
let sideArea = 2 * pi * r * h
topArea = pi * r ^2
in sideArea + 2 * topArea
答
HTML字符实体表示&xxx;
其中xxx
是一些有效的HTML字符代码。具体而言,>
是字符>
的代码,因为它表示“大于”。
假设存在问题的HTML错误,类型声明变得
cylinder :: (RealFloat a) => a -> a -> a
它有什么作用?
你读出来,如“假设a
是类型类RealFloat
的实例,cylinder
需要a
型的两个值,并返回a
类型的值。你可能要考虑的术语‘钻营’,以阅读这些声明。
它是什么声明函数类型。
为什么分号?
实际类型声明中没有分号。
'>'故意吗?如果不是 - 那就是问题所在。 '>'是'''的HTML。类型签名应该是'(RealFloat a)=> a - > a - > a'。 – Alec
哦......你是对的,我正在阅读保留了html符号的pdf版本......对不起我的无知。非常感谢你 – soulless
用适当的'=>'和' - >'修正HTML语法。还要注意缩进很重要,'sideArea'和'topArea'必须在同一列开始,整个函数体必须更加缩进。 – chi