Haskell定义了一个函数

时间:2014-04-26 11:16:09

标签: function haskell

我必须做这样的功能:

success :: (Int,Int,Int) -> Int -> (Int,Int,Int) -> Bool

(Int,Int,Int)前三个Ints是属性(表示1到20之间的数字)

中间的Int是比较属性和骰子之间差异的那个。

(Int,Int,Int)最后三个Ints被一个骰子切成小块,每个骰子有20个边。

sucess (attribute 1,attribute 2, attribute 3) -> Compare difference between attributes and dices -> (Dice 1,Dice 2,Dice 3) -> Bool

现在我必须比较属性1和骰子1等等。 如果骰子高于属性,我会注意到差异。 如果低,我要注意0.如果三个差异高于困难,我输了 =>功能是假的

例如:

success (16,13,8) 4 (1,17,10)  => false difference is 6
success (16,13,8) 4 (1,10, 9)  => true difference is only 1!

我是haskell编程的新手,并且不知道如何处理这个问题。

1 个答案:

答案 0 :(得分:1)

这看起来像是一个家庭作业,你应该自己做。所以我会提供一些提示,而不是完整的解决方案。

您可以使用模式匹配来定义该功能:

success (a1, a2, a3) d (d1, d2, d3) = ... -- put condition at here
    where diff1 = ...
          diff2 = ...
          diff3 = ...

我相信你可以很容易地填写遗漏的细节。