Programovací jazyk OCaml 5.4.0 je nyní k dispozici.

Byl vydán OCaml 5.4.0, průmyslově silný funkcionální programovací jazyk se zaměřením na expresivitu a bezpečnost. OCaml harmonicky kombinuje funkční jádro, imperativní schopnosti, pokročilý objektový systém a unikátní modulární systém. Sada nástrojů OCaml je licencována pod licencí LGPL.

Mezi mnoha programovacími jazyky vyniká OCaml svou všestranností a praktičností, což z něj činí dobrou volbu pro vývoj složitých systémů. Mezi klíčové vlastnosti OCaml patří automatická správa paměti, prvotřídní funkce, statické typování, polymorfismus, podpora neměnných datových struktur, automatické odvozování typů, výkonné algebraické datové typy s porovnáváním vzorů a mnoho dalšího.

Hlavní změny a vylepšení v OCaml 5.4.0:

  • Popisované n-tice vám umožňují pojmenovat členy n-tice a poté na ně odkazovat pomocí těchto názvů. let point = ~x:1, ~y:2 (* val point : x:int * y:int = (~x:1, ~y:2) *) let ( * ) (x,~dx) (y, ~dx:dy) = x*.y, ~dx:(x *.dy +.y *.dx ) (* val ( * ) : float * dx:float -> float * dx:float -> float * dx:float *) let mult_dx xy = let ~dx, .. = x * y in dx
  • Neměnná pole a jednotná syntaxe pro "_array", "_iarray" a "floatarray". [|1; 2; 3|] ([|1; 2; 3|] : _iarray) ([|1.; 2.; 3.|] : floatarray)
  • Vestavěný atribut „atomic“ pro pole záznamů vyžaduje k operaci s ním použití atomických operací. type 'a mpsc_list = { mutable head:'a list; mutable tail:'a list [@atomic] } let rec push tx = let before = Atomic.Loc.get [%atomic.loc t.tail] in let after = x :: before in if not (Atomic.Loc.compare_and_set [%atomic.loc t.tail] before after) then push tx …
  • Nové moduly ve standardní knihovně: Pair, Pqueue, Repr, Iarray.
    • Modul Pair pro práci s páry; let ones = Pair.map_fst succ(0,1)
    • Modul Pqueue je prioritní fronta; modul Int_pqueue = Pqueue.MakeMin(Int) let q = Int_pqueue.of_list[4;0;5;7] let some_zero = Int_pqueue.pop_min q
    • Modul Repr obsahuje funkci pro porovnání fyzikální a strukturální rovnosti; nechť f = Repr.phys_equal (ref 0) (ref 0)
    • Modul Iarray pro práci s neměnnými poli; let a = Iarray.init 10 Fun.id let b = Iarray.map succ a
  • Byl obnoven režim „čištění paměti při ukončení“. Tento režim umožňuje opakované spouštění běhového prostředí OCaml v programech v jazyce C, které používají knihovny OCaml. Je také užitečný pro snížení šumu při sledování úniků paměti v kódu v jazyce C spuštěném v běhovém prostředí OCaml. Aby se předešlo problémům se zrušením, všechny domény jsou sloučeny před ukončením běhového prostředí OCaml.
  • Nová sekce v dokumentaci o profilování programů OCaml v daném prostředí Linux a MacOS.
  • Četná vylepšení běhového prostředí a generování kódu, přibližně třicet nových funkcí standardní knihovny, téměř tucet vylepšených chybových hlášení a více než padesát oprav chyb.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster