Quote (Jason89 @ 25 Oct 2014 19:57)
Ha már F#, akkor inkább Clean. Jóval régebben jelent meg, és elég letisztult funkcionális nyelv, én nagyon szeretem. Esetleg még Erlang.
Az a Selector osztályom nem C, hanem C++.

C-ben nyelvi szinten nincsen osztály fogalom, meg template se. Mondjuk a legjobban a C-t szeretem.
Amit igazán utálok: php meg a javascript. A java-t se szeretem, de megtűrom -- míg az első kettőt nem.

tudom h cpp
php az nekem olyan hogy meghallom és kacarászok egyet

vagy elszomorodom, nem is tudom mikor melyik
javascript az viszont nagyon vegyes érzéseket vált ki
egy rendes IDE-vel (VS már elég jól tolja), meg a következő ECMA kiadással (típusosság, classek) már lehet hogy nem fogom utálni, sőt
most viszont még inkább csak utálom.

Clean/Erlang: próbálok olyan közegben maradni, ami emerging, illetve "közel" áll hozzám.. F# pont ilyen
ráadásul épp ezért szeretem mert az minden egyszerre, oo, functional, imperative, precompiled, (lehet benne mvc, vagy wpf appot írni), stb, és mégis erősen típusos, pedig ki sem kell írni a típusokat, csak kb 15%-ban (mert az ML-nyelvosztályba tartozik, annak a feloldó algoritmusát használja)..
így a legtökéletesebb sandbox-nak tartom, ahol az ember azt tehet meg, amit csak akar, de ezt legalább egy kurva erős szintaktikával
ráadásul tud curryzni (let distribution = distribution n EngineMetrics.holeCount), ez pl függvényből függvényt csinál, csak hozzáad két paramétert -- más általános nyelvekben még ezt sem láttam eddig
Scala is azért terjedt el, mert Java bytecode-ot generál
F# is azért van terjedőben, mert .NET IL-t generál
abban bízom hogy 3-5 éven belül elindulnak az F# projectek is (külföldön már ez megy, btw kb 1.5x annyit keresnek a funkcionális programozók, mint a Java/C#-os társaik)
+ ugyebár ennek passzív profitja is van (gondolkodás mód), hogy ezzel foglalkozik az ember.. kicsavarja az ember agyát (hogy nem imperatívan ír meg mindent) mint az állat
ezt már lehet hogy postoltam, most hirtelen csak megint ezt találtam meg az archives között, imádom ezeknek a szintaktikáját

csak sajnos project nincs rá nagyon (még), így nem tudok vele élesben foglalkozni
Code
//WunderAlgorithm [|9; 45; 00; 0000|] [|14; 30; 00; 0000|] [|24; 60; 60; 1000|]
let wunderAlgorithm (a: int[]) (A: int[]) (tops: int[]) =
if a.Length <> A.Length then failwith "InvalidArgumentExceptionYouIdiot"
if a |> Array.exists(fun item -> item < 0) then failwith "AreYouEvenSweden?"
let add n m top =
match n+m with
| v when v % top + 1 > 0 -> (v / top, v % top)
| _ -> (0, n+m)
let rec ursion d =
match d with
| v when v = a.Length-1 ->
[ add (a.[d]) A.[d] tops.[d] ]
| v ->
let dv = ursion (d+1)
let f = fst dv.[dv.Length - 1]
let (cr, cv) = add (f+a.[d]) A.[d] tops.[d]
[(cr, cv)] |> List.append dv
let l = ursion 0 |> List.rev
let result = List.choose (fun elem ->
match elem with
| v ->
Some(snd elem) ) l
result |> List.append [fst l.[0]]
This post was edited by Anarkin on Oct 25 2014 01:23pm