Hopp til innhold

OCaml

Fra Wikipedia, den frie encyklopedi
Den utskrivbare versjonen støttes ikke lenger eller har rendringsfeil. Oppdater eventuelle bokmerker i nettleseren din og bruk nettleserens standard utskriftsfunksjon i stedet.
OCaml
Tilblivelse1996
ParadigmeMulti-paradigme: Funksjonell programmering, imperativ programmering, objektorientert programmering, modulær programmering
Designet avXavier Leroy, Damien Doligez
Utviklet avINRIA
Siste versjon(er)5.2.0 / 13. mai 2024
Typetildeling inferens, statisk, sterk, strukturell
Filendelse(r).ml, .mli
OSUnix-liknende
LisensQ Public License, LGPL 2.1
Implementert i
Objective Caml, C
Påvirket av
Standard ML

OCaml, eller Objective Caml, er «storebroren» til Caml og tilbyr i tillegg til Caml-egenskapene mulighet for objektorientert programmering.

  ocaml -I +labltk
          Objective Caml version 3.09.1
  
  # print_endline "Hello world";;
  Hello world
  - : unit = ()

  # let f = print_endline;;
  val f : string -> unit = <fun>
  
  # let g x y = x^" "^y;;
  val g : string -> string -> string = <fun>
  
  # let h = g "Hello";;
  val h : string -> string = <fun>
  
  # h "world";;
  - : string = "Hello world"
  
  # h "kévin";;
  - : string = "Hello kévin"

  # let (&) f g x = g (f x) ;;
  val ( & ) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c = <fun>
  
  # ( h & f ) "world";;
  Hello world
  - : unit = ()

  #load "labltk.cma";;
  #open Tk;;
  # let _ =
       let top = openTk () in
       let button = Button.create ~background:`White ~text:"Hello" top in
       bind ~events:[`ButtonPress;`KeyPressDetail "Return"]
            ~action:(fun _ -> print_endline "Hello World")
            top;
       pack [coe button];
       mainLoop()
    ;;
  - : unit = ()
  #

Eksterne lenker