You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bat/tests/syntax-tests/highlighted/OCaml/syntax-test.ml

84 lines
13 KiB
OCaml

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

let s = "hello world"
let n : int = 87
let id x = x
let add x y = x + y
let add' x y =
 let left = x in
 let right = y in
 x + y
let add'' : int -> int -> int = fun x -> fun y -> x + y
let unwrap_option default opt =
 match opt with
 | None -> default
 | Some v -> v
let string_of_bool = function true -> "true" | false -> "false"
let is_a c =
 if c = 'a' then true
 else false
let _ = Printf.printf "%s" "hello"
let () = Printf.printf "%s\n" "world"
let x = ref 0
let _ = x := 1
type my_bool = True | False
type shape = Circle of float | Square of float | Rectangle of (float * float)
type user = {
 login : string;
 password : string;
}
type 'a my_ref = { mutable ref_value : 'a }
let (:=) r v = r.ref_value <- v
let (+) 2 2 = 5
exception Bad_value of string
let bad_value_error () = raise (Bad_value "your value is bad and you should feel bad")
let () =
 try bad_value_error ()
 with Bad_value _ -> ()
let () =
 try bad_value_error ()
 with
 | Bad_value _ -> ()
 | Not_found -> ()
module type FOO = sig
 val foo : 'a -> 'a
end
module Foo : FOO = struct
 let foo x = x
end
let greeter = object
 val greeting = "Hello"
 method greet name = Printf.sprintf "%s, %s!" greeting name 
end
let greeting = greeter#greet "world"
class greeter_factory greeting_text = object (self)
 val greeting = greeting_text
 method greet name = Printf.sprintf "%s, %s!" greeting name
 initializer Printf.printf "Objects will greet the user with \"%s\"\n" greeting
end
let g = new greeter_factory "Hi"