Facebook
From Denim Porcupine, 6 Years ago, written in OCaml (Objective Caml).
This paste is a reply to Re: Untitled from Wet Butterfly - go back
Embed
Viewing differences between Re: Untitled and Re: Re: Untitled
let xs = 1 :: 2 :: 3 :: 4 :: [];;

let rec nTy = function (xs, n) ->
        if (xs = []) then raise (Failure "Error")
        else if (n = 1) then List.hd xs
        else nTy(List.tl xs, n - 1);;
nTy(xs, 2);;


let rec podzielPoN = function (xs, n) ->
        
        let rec podzielPoN_it = function (a, b, n) ->
                if (n = 0) then (b, a)
                else podzielPoN_it(List.tl a, b @ (List.hd a :: []), n - 1)
        in podzielPoN_it(xs, [], n);;
podzielPoN (xs, 2)


let rec podzielWgMod = function (xs, n) ->
        
        let rec podzielWgMod_it = function (xs, a, b) ->
                if (xs = []) then (a, b)
                else if (List.hd xs mod n = 0) then podzielWgMod_it(List.tl xs, a @ (List.hd xs :: []), b)
                else podzielWgMod_it(List.tl xs, a, b @ (List.hd xs :: []))
        in podzielWgMod_it(xs, [], []);;
podzielWgMod(xs, 2);;


let rec coNTy = function (xs, n) ->
        
        let rec coNTy_it = function (x, i) ->
                if (x = []) then []
                else if (i = 1) then List.hd x :: coNTy_it(List.tl x, n)
                else coNTy_it(List.tl x, i - 1)
        in coNTy_it(xs, n);;
coNTy(xs, 2);;