модель n целочисленного типа - PullRequest
3 голосов
/ 27 октября 2010

Я работаю над модулем, который включает набор натуральных чисел.В результате мне нужно смоделировать некоторые n типа integer.Как я могу пойти об этом?

Например.сумма i для непрерывно увеличивающейся последовательности i, начинающейся с 1 = n (n + 1) / 2

Как я могу моделировать n здесь?

1 Ответ

1 голос
/ 27 октября 2010

Требования состоят в том, чтобы мы могли использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...