小编Fat*_*ess的帖子

在元组Haskell的元组中提取元组

我必须制作一个程序,它决定两个圆圈是否在haskell中重叠.我定义了以下内容:

-- | A 2D Point.
type Point = (Float,Float)

-- | A Circle is a pair of its center point and its radius.
type Circle = (Point,Float)
Run Code Online (Sandbox Code Playgroud)

我需要制作一个距离函数来计算两点之间的距离(因此是两个圆圈的中心),然后是一个函数,通过检查两个中心之间的距离是否小于半径的总和来决定它们是否重叠(或半径)

问题是中心是一个touple,半径是单个元素继承人我为距离做的功能:

-- | Distance between two points.
distance :: Point -> Point -> Float
distance p1 p2 = ((snd p1 - fst p1)^2 + (snd p2 - snd p1)^2)^(1/2)
Run Code Online (Sandbox Code Playgroud)

现在我需要做距离<2*半径,但我不能将它们组合起来,因为距离应该在一个元素上执行,而半径在单个元素上

继承人我试过的:

-- | 'True' if the given circles overlap, else 'False'.
overlap :: Circle -> Circle -> Bool
overlap c1 c2 …
Run Code Online (Sandbox Code Playgroud)

geometry haskell tuples overlapping

3
推荐指数
1
解决办法
413
查看次数

Haskell中的类型转换

我有这个任务,我不知道从哪里开始.因此,其中一件事就是使用此签名进行转换:

maybeEither :: Maybe a - > Aither()a

而另一个当然是相反的

要么也许::要么()a - >也许是

所以当你打电话给另一个时,他们会取消彼此.现在我真的不知道从哪里开始......有人可以帮忙吗?

额外的问题:我如何转换一个函数例如(Int->a) -> a和a -> (Int->a) 喜欢,因为在第二个例子中你真的不能将函数作为参数传递给转换的函数,我不知道那会怎样.

haskell types class type-conversion typeclass

0
推荐指数
1
解决办法
198
查看次数