我正在做一些作业,我必须使用以下定义:
data Ponto = Cartesiano Double Double | Polar Double Double deriving (Show,Eq)
要编写一个计算点到垂直轴的距离的函数,使用上面的数据类型,坐标可以是x和y或r和角度。
您能帮助我了解如何在Haskell中使用这种类型的定义吗?
答案 0 :(得分:4)
您只需要为可用于该类型的每个数据构造器逐段定义函数:
yourFunction :: Numa a => Ponto -> a
yourFunction (Cartesiano x y) = ...
yourFunction (Polar r th) = ...