Programmeerimiskeel OCaml 5.4.0 on saadaval

Avaldatud on OCaml 5.4.0 programmeerimiskeele versioon, mis on tööstuslik funktsionaalne programmeerimiskeel, mille peamine fookus on arendatava tarkvara väljendusvõimes ja turvalisuses. OCaml-is ühendatakse harmooniliselt funktsionaalne tuum, imperatiivsed võimalused, arenenud objektisüsteem ja ainulaadne moodulite süsteem. OCaml-i tööriistakomplekti kood on jaotatud LGPL litsentsi alusel.

Paljude programmeerimiskeelte seas paistab OCaml silma oma universaalsuse ja praktilisusega, muutes selle heaks valikuks keerukate süsteemide arendamiseks. OCaml-i peamised omadused hõlmavad automaatset mäluhalduse, esimese klassi funktsioone, staatilise tüüpimise, polümorfismi, muutumatute andmestruktuuride toetust, automaatset tüübi tuvastamist ja võimsaid algebralisi andmetüüpe koos mustri sobitamisega ning palju muud.

Peamised muudatused ja täiustused OCaml 5.4.0-s:

  • Nimetatud tuplid (Labelled tuples), mis võimaldavad anda tupli liikmetele nimesid ja seejärel neid nendele viidates kasutada. 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 x y = let ~dx, .. = x * y in dx
  • Kimmutamatud massiivid ja ühtne süntaks «_ array», «_ iarray» ja «floatarray» jaoks. [|1; 2; 3|] ([|1; 2; 3|] : _ iarray) ([|1.; 2.; 3.|] : floatarray)
  • Sisseehitatud atribuut «atomic» rekordite väljade jaoks, mis nõuab aatomsete operatsioonide kasutamist nendega töötamiseks. type ‘a mpsc_list = { mutable head:’a list; mutable tail: ‘a list [@atomic] } let rec push t x = 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 t x …
  • Uued moodulid standardraamatukogus: Pair, Pqueue, Repr, Iarray.
    • Moodul Pair paaride töötlemiseks; let ones = Pair.map_fst succ (0,1)
    • Moodul Pqueue — prioriteetjärjekord; module Int_pqueue = Pqueue.MakeMin(Int) let q = Int_pqueue.of_list [4;0;5;7] let some_zero = Int_pqueue.pop_min q
    • Moodul Repr sisaldab füüsilist ja struktuurset võrdlemist, võrdlusfunktsiooni; let f = Repr.phys_equal (ref 0) (ref 0)
    • Iarray moodul, ettemeetmatute massiivide haldamiseks; let a = Iarray.init 10 Fun.id let b = Iarray.map succ a
  • Taaskäivitatud "mälu puhastamise" režiim. See režiim võimaldab korduvalt käivitada OCaml interpretatsiooni C keeltes programmides, mis kasutavad OCaml teeke. Samuti on see kasulik C koodis mälu lekete jälgimise mürade vähendamiseks. Et vältida "tühistamise" probleeme, kõik domeenidele koondatakse enne OCaml interpretatsioonist lahkumist.
  • Uus jaotis OCaml programmide profileerimise kohta Linuxi ja MacOS keskkonnas dokumentatsioonis.
  • Mitmeid täiendusi interpretatsioonikeskkonna, koodigeneratsiooni, umbes kolmkümmend uut funktsiooni standardraamatukogus, peaaegu tosin parendatud veateateid, rohkem kui viiskümmend vea parandust.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster