整数类型的模型n

时间:2010-10-27 09:59:35

标签: ocaml

我正在研究一个涉及一组自然的模块 数字。因此,我需要为整数类型的n建模。我怎么能够 去吧?

EG。 i的总和,用于从1 =开始连续增加i的序列 N(N + 1)/ 2

我如何在这里建模?

1 个答案:

答案 0 :(得分:1)

要求是我们应该能够使用n作为整数。我想我想通了。

    type element_i = N of nativeint | CNN of nativeint*nativeint
(* element_i can be an integer or a*n+b represented as (a,b))
let to_string_i e = match e with N z -> "%d" z | CNN c -> " (%d xn + %d) " (fst c) (snd c)

let plus_i a b =
    match (a,b) with 
        | (N a1,N b1) -> N (a1 + b1)
        | (N a1,CNN b1) -> CNN (fst b1, (snd b1) + a1)
        | (CNN a1,N b1) -> CNN (fst a1, (snd a1) + b1)

let times_i a b = 
    match (a,b) with 
        | (N a1,N b1) -> N (a1 * b1)
        | (N a1,CNN b1) -> CNN ((fst b1) * a1, (snd b1) * a1)
        | (CNN a1,N b1) -> CNN ((fst a1)* b1, (snd a1) * b1)