Gjuha e programimit OCaml 5.4.0 është e disponueshme

ËshtĂ« publikuar rregulli i gjuhĂ«s sĂ« programimit OCaml 5.4.0, njĂ« gjuhĂ« programimi funksionale industriale me fokus nĂ« shprehshmĂ«rinĂ« dhe sigurinĂ« e softuerit tĂ« zhvilluar. NĂ« OCaml, bĂ«rthama funksionale harmonizohet me mundĂ«sitĂ« imperative, njĂ« sistem tĂ« avancuar objektiv dhe njĂ« sistem modulor tĂ« veçantĂ«. Kodi i mjetit pĂ«r gjuhĂ«n OCaml shpĂ«rndahet nĂ«n licencĂ«n LGPL.

Mes shumë gjuhëve të programimit, OCaml dallohet për universialitetin dhe praktikën e saj, duke e bërë atë një zgjedhje të shkëlqyer për zhvillimin e sistemeve komplekse. Karakteristikat kryesore të OCaml përfshijnë menaxhimin automatik të memories, funksionet e klasës së parë, tipizimin statik, polimorfizmin, mbështetje për strukturat e dhënash të papërmirësueshme, inferencën automatik të tipeve dhe llojet e dhënash algebrike të fuqishme me përputhjen e modeleve, dhe shumë më tepër.

Ndryshimet dhe përmirësimet kryesore në OCaml 5.4.0:

  • Korteza tĂ« emĂ«ruara (Labelled tuples), qĂ« lejojnĂ« emĂ«rimin e anĂ«tarĂ«ve tĂ« kortezĂ«s dhe mĂ« pas pĂ«rdorimin e tyre pĂ«r t'u referuar atyre. 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
  • Masa tĂ« papĂ«rmirĂ«sueshme dhe njĂ« sintaksĂ« tĂ« vetme pĂ«r «_ array», «_ iarray» dhe «floatarray». [|1; 2; 3|] ([|1; 2; 3|] : _ iarray) ([|1.; 2.; 3.|] : floatarray)
  • Attributi i integruar «atomic» pĂ«r fushat e regjistrave, qĂ« kĂ«rkon pĂ«rdorimin e operacioneve atomike pĂ«r tĂ« punuar mbi tĂ«. 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 

  • Module tĂ« reja nĂ« bibliotekĂ«n standarde: Pair, Pqueue, Repr, Iarray.
    • Moduli Pair pĂ«r punĂ«n me çiftet; let ones = Pair.map_fst succ (0,1)
    • Moduli Pqueue — radhĂ« me pĂ«rparĂ«si; module Int_pqueue = Pqueue.MakeMin(Int) let q = Int_pqueue.of_list [4;0;5;7] let some_zero = Int_pqueue.pop_min q
    • Moduli Repr pĂ«rmban barazinĂ« fizike dhe strukturore, funksionin e krahasimit; let f = Repr.phys_equal (ref 0) (ref 0)
    • Moduli Iarray pĂ«r punĂ«n me masat e papĂ«rmirĂ«sueshme; let a = Iarray.init 10 Fun.id let b = Iarray.map succ a
  • Ă«shtĂ« rikthyer mĂ«nyra “pastrimit tĂ« memories gjatĂ« daljes”. Kjo mĂ«nyrĂ« lejon pĂ«rsĂ«ritjen e ekzekutimit tĂ« OCaml nĂ« programet nĂ« gjuhĂ«n C, tĂ« cilat pĂ«rdorin bibliotekat OCaml. Ajo Ă«shtĂ« gjithashtu e dobishme pĂ«r tĂ« zvogĂ«luar zhurmĂ«n nĂ« ndjekjen e rrjedhjeve tĂ« memories nĂ« kodin C, qĂ« ekzekutohet nĂ« mjedisin OCaml. PĂ«r tĂ« evituar problemet me “cancellation”, tĂ« gjitha domainet bashkohen para daljes nga mjedisi OCaml.
  • NjĂ« seksion i ri nĂ« dokumentacionin pĂ«r profilimin e programeve OCaml nĂ« mjedisin Linux dhe MacOS.
  • PĂ«rmirĂ«sime tĂ« shumta nĂ« mjedis, gjenerimin e kodit, rreth tridhjetĂ« funksione tĂ« reja nĂ« bibliotekĂ«n standarde, pothuajse njĂ« duzinĂ« mesazhe tĂ« pĂ«rmirĂ«suara tĂ« gabimeve, mbi pesĂ«dhjetĂ« korrigjime tĂ« gabimeve.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster