1.0 KiB
1.0 KiB
3.1. The alternative
The if structure
if cond then expr1 else expr2
⚠️
expr1
andexpr2
have to be the same type.cond
is abool
For exemple
# if 1<2 then "higher" else "lower" ;;
-: string = "higher"
Exercise : absolute program
# let abs(x) =
if x>0 then x
else -x ;;;
val abs : int -> int <fun>
3.2. Exceptions
Division by 0:
# 1/0
Exception : Division by zero
Failwith:
Failwith is a function that take a string argument (the reason) and return the error. That way, we can raise an error into our code
# failwith;;
-: string -> a = <fun>
# failwith "oops";;
Exception : Failwith "oops"
invalid_arg:
Invalid_arg is a function that take a string argument (the reason) and return the error. That way, we can raison an error about an argument
# invalid_arg "oops";
Exception: Invalid_argument "oops"
(*example*)
# let div a b =
if b = 0 then invalid_arg("div: b = 0")
else a/b ;;;
val div int -> int -> int = <fun>