Operátory :=
a !
pro práci s referencemi jsou zastaralé od verze 6.0 - viz https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/reference-cells#deprecated-constructs
Krom toho bych řekl, že ref
se v F# moc nepoužívá - stačí buď mutable
nebo se používá ref ze C#, který je v F# znám jako byref
, inref
, outref
,
Které? Myslím, že mají zavedné od verze 5 dost věcí:
"""OCaml 5 brings in support for concurrency through effect handlers and the new Input/Output library Eio, which lets developers compose asynchronous and synchronous code together."""
Ale nejsem samozrejme v obraze co se tyka neajkho vyzkumu. Myslel sem že efekty a zavislostni typy jsou top. Na efektech delaj i ve Scala: https://softwaremill.com/the-future-of-effects-in-scala/
Ale neberte mne moc vazne, mne zivi Python :D
14. 9. 2023, 20:30 editováno autorem komentáře
Obecně zbavit se nečistého kódu a zvýšit efektivitu (běhu). Ten překlad imperativního kódu do čistě funkcionálního je hodně dobrý. K té efektivitě stačí zavést FBIP (in situ modifikace perzistentnícn struktur). K těm typům — jasně, některé jazyky k tomu směřují, například Scala, ale aby pak kód za něco stál (aby byl čitelný a bez zbytečného boilerplatu), musí mít jazyk i implicitní koerce. To tak namátkou, ty jazyky se mezi sebou inspirují, jen ta implementace často dost dlouho trvá.