我们开始了解代数数据类型。作为一个例子,我们有:
add :: Nat -> Nat -> Nat
add a Zero = a
add a (S b) = add (S a) b
add' :: Nat -> Nat -> Nat
add' a Zero = a
add' a (S b) = S (add' a b)
那是什么意思?好吧,添加一个Zero = a我想它很清楚。 但是添加一个(S b)= add(S a)b?并添加'?
非常感谢你;)
答案 0 :(得分:3)
假设您正在教孩子如何添加只知道计数的数字。
第一: 添加3和2等于添加4和1,等于添加5和0,我们知道答案是5。
第二: 添加3和2后,在添加3和1之后找到下一个数字,这是在添加3和0之后的下一个数字。因此,答案是在3上计数两次。