Hey,

I do creat a program who converse a number (int) of base 10 to base 16,

But i don’t know how to check this !

My code :
`let base_16_aux(x : int) : string =
if x <= 15
then temp(x,"")
else let rec base_16_aux2(x : int) : string =
let (r, q) : int * int = mod16(x) in
let result : string = “” in
if q < 16
then temp(q, result)
else let (c, d) : string * int =
(temp(r , result), base_16_aux2(q))

;;
`

you can check it over any of the online compilers for ocaml.

First you should use the [code] block from discuss and indent your code so that structure appear more clearly:

``````let base_16_aux(x : int) : string =
if x <= 15
then
temp(x,"")
else
let rec base_16_aux2(x : int) : string =
let (r, q) : int * int = mod16(x) in
let result : string = "" in
if q < 16
then
temp(q, result)
else
let (c, d) : string * int =
(temp(r , result), base_16_aux2(q))``````

There are multiple issues with this program:

• What is `temp` ?
• Function application do not need parenthesis in OCaml, but maybe your `temp` function expects a couple ? Because `(x, "")` is a couple in OCaml, not a list of two function parameters.
• You use `let ...` constructs inside expressions where only `let ... in` are allowed.
2 Likes