F # Handel Stelsels


Leer F # Om te leer F # Gebruik een van die gratis aanlyn-hulpbronne of boeke hieronder. F # vir C #, Java of Python ontwikkelaars Inleiding tot F # en wys jou 'n manier wat F # kan help in die dag-tot-dag ontwikkeling van hoofstroom kommersiële business. Probeer F # is 'n interaktiewe omgewing waar jy kan verken F # in jou webblaaier (op 'n Mac en Windows). Dit bevat 'n aantal online tutorials toon die krag van F #: F # Cheat Sheet Die cheat sheet is 'n klein en beknopte gids tot F # sintaksis vir nuwelinge om te begin met die taal. Dit is beskikbaar in HTML en PDF-formaat. F # Boeke - Algemene Die bou van die web, Wolk, en Mobile Solutions met F # Daniel Mohl Leer hoe om kernaspekte van web, wolk, en mobiele oplossings te bou deur die kombinasie van F # met verskeie NET en open source tegnologie. Met nuttige voorbeelde, hierdie hands-on boek wys jou hoe om concurrency, asynchronie, en ander bediener-kant uitdagings aan te pak. Jy sal vinnig leer hoe om produktief met F # wees, of jy wil hê dat die taal te integreer in jou bestaande web aansoek of gebruik dit om die volgende Twitter skep. Begin F # Robert Pickering Funksionele programmering is dalk die volgende groot golf in aansoek ontwikkeling. Met Beginning F #, jy het 'n metgesel wat sal jou help om te verken F # en funksionele programmering in 'n NET omgewing. Hierdie boek is beide 'n omvattende inleiding tot alle aspekte van die taal en 'n indringende gids tot die gebruik van F # vir werklike professionele ontwikkeling. Programmering F # 3.0 Chris Smith Hoekom leer F #? Hierdie multi-paradigma taal nie net bied jou 'n groot produktiwiteit hupstoot deur funksionele programmering, dit laat jou ook aansoeke te ontwikkel met behulp van jou bestaande objek-georiënteerde en noodsaaklik in te skerp. Met Programmering F #, sal jy gou agterkom die vele voordele van nuwe taal Microsoft se, wat toegang tot al die groot gereedskap en biblioteke van die NET platform sluit. F # Vir C # Ontwikkelaars Mense vra dikwels: "Wat kan F # moenie dat C # kan nie?" In hierdie boek, sal jy baie van wat F # kan doen ontdek! Jy sal vertroud dinge soos voorwerp programmering en ontwerp patrone te sien. Verder sal jy ook sien kragtige nuwe dinge soos patroonpassing, pype, eerste-klas gebeure, voorwerp uitdrukkings, opsies, tuples, rekords, gediskrimineer vakbonde, aktiewe patrone, agente, berekening uitdrukkings en miskien mees kenmerkende, tipe verskaffers. Deskundige F # 3.0 Don Syme, Adam Granicz, Antonio Cisternino Deskundige F # 4.0 is ongeveer praktiese programmering in 'n pragtige taal wat die krag en elegansie van data-ryk funksionele programmering plaas in die hande van professionele ontwikkelaars. Real World funksionele programmering Tomas Petricek met Jon kleiduiven Real World funksionele programmering is 'n unieke handleiding wat die funksionele ontwikkeling model deur middel van die F # en C # tale verken. Die duidelik aangebied idees en voorbeelde leer lesers hoe funksionele programmering verskil van ander benaderings. Dit verduidelik hoe idees kyk in F # - a funksionele taal-sowel as hoe hulle suksesvol gebruik kan word om programmeringsprobleme in C # los. Funksionele programmering met behulp van F # Michael R. Hansen, Hans Rischel Hierdie omvattende inleiding tot die beginsels van funksionele programmering met behulp van F # wys hoe om basiese teoretiese begrippe van toepassing op bondige en elegante programme te produseer. Dit demonstreer die rol van funksionele programmering in 'n wye spektrum van programme soos databasisse en stelsels. Dekking sluit ook gevorderde funksies in die NET biblioteek, die noodsaaklikheid kenmerke van F # en onderwerpe soos teks verwerking, rye, berekening uitdrukkings en asynchrone berekening. Met 'n breë spektrum van voorbeelde en oefeninge, die boek is ideaal vir kursusse in funksionele programmering en vir selfstudie. Die verbetering van die gebruik daarvan as 'n teks is 'n meegaande webwerf met aflaaibare programme, lesings skyfies, 'n mini-projekte en skakels na F # bronne te bevorder. F # vir Wetenskaplikes Jon Harrop F # vir Wetenskaplikes verduidelik en demonstreer die kragtige kenmerke van hierdie belangrike nuwe programmeertaal. Die boek aanvaar geen vorige ondervinding en lei die leser van die basiese beginsels van rekenaarprogrammering om die implementering van state-of-the-art algoritmes. Geskryf in 'n duidelike en bondige styl, F # vir Wetenskaplikes is geskik vir navorsers, wetenskaplikes. Dit dien ook as 'n ideale aanvullende teks vir gevorderde voorgraadse en nagraadse studente met 'n agtergrond in die wetenskap of ingenieurswese. F # vir Kwantitatiewe Finansies Johan Astborg Hierdie boek dek alles wat jy nodig het om te weet oor die gebruik van funksionele programmering vir kwantitatiewe finansies. Met behulp van 'n funksionele programmeertaal sal jou in staat stel om meer oor die probleem self konsentreer eerder as om implementering besonderhede. Tutoriale en brokkies word opgesom in 'n outomatiese stelsel handel oor die hele boek. Die Boek van F # Dave Fancher Die Boek van F # daarop gemik is om intermediêre en ervare ontwikkelaars stel om funksionele eerste ontwikkeling met F #. Dwarsdeur die boek, sal jy leer hoe hierdie robuuste taal kan jou help om te fokus op die skep van korrekte oplossings deur die instelling van 'n verskeidenheid van belangrike konsepte insluitend currying, gedeeltelike aansoek, patroonpassing, eenhede van meet, asynchrone werkstromen, navraag uitdrukkings, tipe verskaffers, en berekening uitdrukkings. Verder sal jy ontdek hoe ryk objekgeoriënteerde vermoëns F # 's toelaat dat dit natuurlik inpas by bestaande programme. Programmeertaal Konsepte Peter Sestoft Die boek Programmering Taal Proewe (PLC) verskaf 'n inleiding tot programmering taal konsepte en implementering van tegnologie, soos interpretasie, samestelling, tipe kontrole en tipe afleiding, abstrakte masjiene, en vullisverwydering. F # word gebruik as 'n meta taal regdeur die boek uitdruk alle konsepte en voorbeelde van programmeertaal ontwerp in 'n moderne sterk getik taal van die ML-familie, sodat die leser om te eksperimenteer met die idees dadelik. F # Diep duik Tomas Petricek en Phillip Trelford F # Diep duik bied 'n versameling van die werklike wêreld F # tegnieke, elke geskryf deur kundige praktisyns. Elke hoofstuk bied 'n nuwe gebruik geval waar jy lees hoe die skrywer gebruik F # 'n komplekse probleem meer effektief as moontlik sou gewees het met behulp van 'n tradisionele benadering te los. Jy sal nie net kyk hoe 'n spesifieke oplossing werk in 'n spesifieke domein, sal jy ook leer hoe F # ontwikkelaars nader probleme, wat konsepte wat hulle gebruik om dit op te los, en hoe hulle integreer F # in bestaande stelsels en omgewings. Masjienleer Projekte vir NET Developers Mathias Brandewinder Masjienleer Projekte vir NET Developers wys jou hoe om slimmer NET programme wat leer uit data, die gebruik van eenvoudige algoritmes en tegnieke wat aangewend kan word om 'n wye verskeidenheid van werklike probleme op te bou. Multi-Paradigm programmering met behulp van F # en NET Ali Baghernejad F # is die gevolg van die kombinasie van die krag en vermoëns van funksionele programmering met die imperatief en objekgeoriënteerde paradigma van NET. Multi-Paradigm programmering in F # is 'n boek wat jou help om ontwikkelaars te maak toepassings met behulp van F # gereedskap en die NET biblioteek. Hierdie boek is geskryf in Persiese taal in 509 bladsye. In hierdie boek sal jy lees: Inleiding tot F # (Geskiedenis en Voordele) Kry Statring Met F # (installasie, interaktiewe omgewing, ...) F # Fundementals (Waardes, primitiewe tipes, funksies, tipe Inferensie, Algemene, ...) Bevorder Tipes (lyste, Tuples, Enums, gediskrimineer Unie, Eenheid maatreëls, ...) Funksionele programmering (Uitdrukkings, Imutability, funksiewaardes, patroonpassing, Corne, ...) Noodsaaklik Programmering (Verklarings, Kan nie verander Waardes, newe-effekte, skikkings, hulpbronbestuur, ...) Objekgeoriënteerde programmering (objekte, klasse, oorerflikheid, abstraksie, Polimorfisme, ...) Hantering van foute (Uitsonderings, uitsondering Tipes, Gooi en vang Uitsonderings, ...) Databasisse (SQL Server, Query Uitdrukkings, Tipe Verskaffers, ...) Interfaces (Windows Vorms, WPF, GTK #) F # Books (binnekort beskikbaar) Verstaan ​​funksionele programmering Scott Wlaschin 'N Praktiese benadering met voorbeelde in F #. Is jy 'n ervare C #, Java of Python ontwikkelaar? Wil jy om te verstaan ​​waaroor al die bohaai oor funksionele programmering is oor? Ontwerp vir beginners, sal hierdie boek geskrywe al die kernkonsepte van funksionele programmering in 'n praktiese manier sonder wiskunde of jargon te verduidelik. Online Tutorials Hierdie afdeling lyste van 'n paar van die vrylik beskikbaar online tutorials op F #. Jy kan blaai hierdie aanlyn gidse om verduideliking van al die belangrike F # taalkenmerke vind en sien baie interessante voorbeelde. F # Programmering Wikibook Die wikibook bevat 'n omvattende gids tot F # programmering. Dit dek F basiese # taal en noodsaaklike funksionele programmering konsepte soos die werk met funksies en onveranderlike datastrukture. Dit bespreek ook noodsaaklik en objekgeoriënteerde programmering in F # en gevorderde langauge eienskappe soos aktiewe patrone en berekening uitdrukkings. Ontleding en visualisering Data met F # F # vir Trading Phil Trelford beskryf en demonstreer gebiede waar F # blink, soos domein modellering, berekening en samelopendheid. Phil Trelford is 'n sagteware argitek by 'n ISV verskaffing real-time elektroniese handel sagteware. Sy loopbaan strek tot dusver meer as 20 jaar, met ondervinding in die video speletjies, ontspanning, kleinhandel en finansiële sektore. Phil se onlangse kommersiële ontwikkeling werk is met C ++, C #, SQL, JavaScript, en sluit meer as 5 jaar die ontwikkeling van F # aansoeke. Vreemd Loop is 'n multi-dissiplinêre konferensie wat daarop gemik is om die ontwikkelaars en denkers bou môre se tegnologie in gebiede soos ontluikende tale, alternatiewe databasisse, concurrency, verspreide stelsels, mobiele ontwikkeling, en die web bymekaar te bring. Vreemd Loop geskep in 2009 deur sagteware ontwikkelaar Alex Miller en is nou gelei deur 'n span van St Louis-gebaseerde vriende en ontwikkelaars onder vreemde Loop LLC, 'n vir-winsgewende, maar nie besonder winsgewende onderneming. Getuigskrifte en aanhalings Die F #-kode is konsekwent korter, makliker om te lees, makliker om refactor en bevat heelwat minder foute. As ons data-analise gereedskap ontwikkel ... ons het meer produktief geword. Op Kaggle ons aanvanklik gekies F # vir ons kern data-analise algoritmes as gevolg van sy uitdrukking. Ons het so gelukkig met die keuse wat ons het gevind onsself beweeg meer en meer van ons aansoek uit C # en in F # gewees. Die F #-kode is konsekwent korter, makliker om te lees, makliker om refactor, en, as gevolg van die sterk tik, bevat heelwat minder foute. As ons data-analise gereedskap ontwikkel, het ons gesien domein-spesifieke konstrukte na vore baie natuurlik; as ons kodebasis groter word, word ons meer produktief. Die feit dat F # teikens die CLR was ook krities - selfs al het ons het 'n groot bestaande kode basis in C #, slag met F # was 'n maklike besluit want ons het geweet ons kan nuwe modules gebruik dadelik. data wetenskap, masjienleer, begin Die gebruik van F # toon 'n lieflike plek vir die taal binne onderneming sagteware Ek het 'n aansoek om die nasionale kragopwekking skedule vir 'n portefeulje van kragstasies te balanseer om 'n handels posisie vir 'n energie-maatskappy geskryf. Die kliënt en bediener komponente was in C #, maar die berekening enjin is in F # geskryf. Die gebruik van F # om die kompleksiteit in die hart van hierdie aansoek aan te spreek toon duidelik 'n lieflike plek vir die taal binne onderneming sagteware, naamlik algoritmies komplekse analise van groot datastelle. My ondervinding is 'n baie positiewe mens was. Die bou van waardasie modelle vir afgeleide transaksies vereis vinnige ontwikkeling van wiskundige modelle, moontlik gemaak deur samestelling van 'n laer-vlak model komponente. Ons het gevind dat F #, met die gepaardgaande toolset, bied 'n unieke kombinasie van eienskappe wat maak dit baie goed geskik vir hierdie soort ontwikkeling. In hierdie gesprek, sal ek verduidelik hoe ons met behulp van F # en wys hoekom dit 'n goeie wedstryd. Ek sal ook praat oor die probleme wat ons gehad het, en 'n oorsig toekomstige uitbreidings dat hierdie soort van werk sal baat. Dra getuigskrifte Om 'n nuwe getuigskrif voeg, teken in op GitHub, wysig hierdie bladsy en stuur 'n trek versoek. Jy kan ook getuigskrifte per e-pos te stuur na fsharp@fsharp. org. Die prestasie is fenomenaal. Ons kan nou weer bereken die hele bank portefeulje van nuuts af in minder as 'n sekonde en die reaksie-tyd vir enkele berekening transaksie verifikasie is ver onder 100 millisekondes. Jan Erik Ekelof. M. Sc. Hoof IT-argitek en lei ontwikkelaar teenpartyrisiko Handel Banken permalink Ek het eers geëvalueer F # terug in 2006 - 2007 vir die doel van wiskunde-georiënteerde hoë werkverrigting programme binne finansiële risiko. Ek het in die lente van 2009 'n sending om 'n nuwe Real-time teenparty Risiko stelsel wat alle moontlike huidige en toekomstige transaksie tipes in die hele bank implementeer. Die poging is begin met net drie bronne, my as argitek en lei ontwikkelaar en twee kollegas - een risiko kenner en 'n hoogs presterende ontwikkelaar. Ons eerste voorneme was om te gebruik C #, maar ek het 'n vinnige bewys-van-konsep met F # implementering van 'n lae vlak TCP / IP-kommunikasie om 'n bestaande risiko-stelsel. Dit het vir ons en ons bestuur wat F # vir ons 'n werklike produktiwiteit hupstoot kan gee as gevolg van sy ondersteuning vir verskeie paradigmas en funksionele konsepte saam met 'n indrukwekkende ondersteuning vir multi-threading. Ons eerste aflewering is vinnig nader en F # homself bewys as 'n ware lewe-saver. Ons het begin met C # in baie plekke, maar het sedertdien verhuis byna geheel en al in F # danke aan sy vermoë om die bedrag van die kode wat nodig is en sy eenvoud by die ontwikkeling van massiewe parallelle berekeninge te verminder. Die prestasie is fenomenaal. Ons kan nou weer bereken die hele bank portefeulje van nuuts af in minder as 'n sekonde en die reaksie-tyd vir enkele berekening transaksie verifikasie is ver onder 100 millisekondes (die oorspronklike vraag was 200 millisekondes om die aansoek bruikbare vir elektroniese markte maak). Alhoewel sommige winste word aan toegeskryf word aan die manier waarop ons ons berekening modelle gebou het, F # het dit moontlik gemaak vir ons om ons algoritmes en tegnieke te implementeer met baie min kode en met 'n groot ooreenkoms met die oorspronklike wiskundige modelle en regulasies (wat belangrik is vir verifikasie van korrektheid). Ons het ook in staat om die steun vir A-sinkroniseer-werkstromen vervaardiging-kode wat is eenvoudig en duidelik en maklik om te verstaan ​​gebruik, maar nog steeds loop parallel wanneer dit nodig is. Die huidige aansoek bevat 35-40,000 lyne van F # - kode en 'n gelyke bedrag van C # - kode. Maar ons skatting is dat die F #-kode bevat ten minste 80% van die funksie (wat is redelik amazing!). Ons ervaring toon dat die aantal kode lyne krimp met 'n verhouding van 02/01 tot 04/01 deur net porting funksies van C # om F # (nie die tel van enkele karakter of leë lyne in die C # - kode). Ons het deur hermodellering verhoog die verhouding tot die gebied van 05/01 tot 08/01, waar die hermodellering objekgeoriënteerde konstrukte behels die vervanging van met funksionele kinders (en eintlik die verwydering van wispelturig state). Een voorbeeld van verlede week was 'n beperking-benutting module geskryf in F #, maar met behulp van 'n objek-georiënteerde benadering met 300 lyne van kode. Ek oorgeskryf dit tot minder as 70 reëls van die kode net deur die verskuiwing paradigma (en die herskryf het dit baie makliker om te verstaan ​​en te verifieer)! finansiële dienste, analise, teenpartyrisiko, vaste inkomste, afgeleides, finansiële modellering Die voordele van funksionele programmering in F # het ons 'n groot voordeel gegee oor ons stadig bewegende mededingers. Op Bayard Rock werk ons ​​hard elke dag in die strewe na nuwe benaderings tot anti-geldwassery. Voor die aanneming van F # was daar dikwels maande van omkeertyd tussen ontwikkeling van 'n idee en eintlik om dit te toets op 'n ware data in ons produksie-omgewing. F # 's bondigheid en composability stel ons in staat om vinnig te Itereer op idees, terwyl die tipe stelsel dien as 'n veiligheidsnet. Op die top van hierdie, dit het die voordeel dat dit 'n eerste klas lid van die NET ekosisteem en so integreer foutloos met ons Microsoft stapel stelsels. Dit beteken dat in plaas van maande het ons kan sien dikwels ons idees kom om die lewe in enkele dae. Die voordele van funksionele programmering in F # het ons 'n groot voordeel gegee oor ons stadig bewegende mededingers. Na drie jaar van die gebruik van F # ons produkte konsekwent gekry aansienlik beter elke jaar sonder om afbreuk stabiliteit. Ons kliënte dikwels verstom oor hoe ons vinnig kan aanpas by unieke uitdagings en hoe ons die slegte ouens wegkruip in hul data veel meer doeltreffend as enigiemand anders kan vind. Min weet hulle dat dit grootliks te danke aan ons geheime wapen, F #. finansiële dienste, analise, anti-geldwassery, teenpartyrisiko, masjien-leer Grange Versekering parallelized sy gradering enjin beter voordeel van multicore bediener hardeware neem Vir byna 75 jaar, het Grange Versekering mededingende produkte en dienste aan polishouers aangebied in meer as 'n dosyn Amerikaanse state. Om sy welverdiende reputasie en status in stand te hou, het die maatskappy besluit om sy gradering enjin-n tool vir gradering beleid en die uitvoering van what-if modellering, impak-ontleding, en ander belangrike aktiwiteite te verbeter. Werk met die Sophic Groep en die gebruik van die Microsoft Visual Studio Team System ontwikkeling omgewing en F # programmeertaal, Grange Versekering parallelized sy gradering enjin beter voordeel van multicore bediener hardeware neem, en sodoende daardeur beduidende prestasie voordele. Prosesse wat gebruik word om ure benodig nou 'n paar minute, sodat die maatskappy tot tyd-tot-mark te knip deur weke en maak dit baie makliker vir 'n onafhanklike agente te verkoop en diens Grange produkte. versekering, parallellisatie, finansiële dienste Groot versekeringsmaatskappy ontwikkel 'n hele pensioen kwotasie sakrekenaar heeltemal in F # in minder as 100 dae met geen vorige F # ervaring op alle ... Een van die wêreld se grootste versekeringsmaatskappye het F #-kode in die produksie, begin 'n paar meer projekte in F #. Ons is tans raadgewende vir hierdie maatskappy (£ 2.5bn wins) wat 'n paar van hul verwerking van syfers en besigheid logika het migreer na F # en is so gelukkig met die resultate (10x vinniger en 10x minder kode vs hul Visual C ++ 6) dat hulle van voorneme om 1600000 reëls van die kode migreer na F #. In die besonder, hul ontwikkelaars gevind F # maklik om te leer en te gebruik. ... My voorganger ontwikkel 'n hele pensioen kwotasie sakrekenaar (tipies geskeduleer om 300-400 man dae neem) geheel en al in F # in minder as 100 dae met geen vorige F # ervaring nie. Prestasie is 10 × beter as die C ++ wat dit vervang, omdat die nuwe kode vermy onnodige kopiëring en wedervaringe multicore parallelisme. Deel van my werk hier sal wees om basiese F # opleiding te gee aan ongeveer 20 mense en bring 'n paar mense tot deskundige vlak. In antwoord op "Kan jy enige bewyse vir 10x prestasie wins oor C ++ gee?". Die versekeraar se C ++ kode is 'n eenvoudige handleiding vertaling van baie ondoeltreffende Mathematica kode wat ly aan 'n hele paar patologiese prestasie probleme hoofsaaklik gesentreer rondom oormatige kopiëring. Die F # herskryf nie hierdie probleem het. Die 10x prestasie gewin is bevestig deur die kliënt. finansiële dienste, versekering, aktuariële Ons risiko en analitiese vermoëns (...) is heeltemal geskryf in F # ... Werk direk met Trafigura se Hoof Risiko Beampte / Hoof van Kwantitatiewe analise, slingerspoed kode en vinnig uit te brei ons risiko en analitiese vermoëns, wat geheel en al in F # geskrywe is. Trafigura Beperk betrokke is by die verskaffing-en afname van ru-olie, petroleum produkte, vloeibare petroleumgas, metale, en metaal erts en konsentreer wêreldwyd. Die oplossings sluit in handel, finansiering, verskansing en logistieke ondersteuning .... comodities, handel, risiko, ontleding Die F # oplossing bied vir ons 'n orde van grootte toename in productivty ... F # steeds 'n belangrike deel van ons bediener kant infrastruktuur wat ons mobiele en web-gebaseerde sosiale speletjies met miljoene aktiewe gebruikers ondersteun. F # in die eerste plek in ons tegnologie stapel in die implementering van die enjin reëls vir ons sosiale slots speletjies wat teen dié tyd meer as 700,000 unieke spelers en 150000000 versoeke per dag by pieke van 'n paar duisend versoeke per sekonde te dien. Die F # oplossing bied vir ons 'n orde van grootte toename in produktiwiteit en laat een ontwikkelaar om die werk wat uitgevoer word deur 'n span toegewyde ontwikkelaars op 'n bestaande Java-gebaseerde oplossing uit te voer, en is van kritieke belang in die ondersteuning van ons ratse benadering en twee-weeklikse vrylating siklusse. Die-agent gebaseer programmering model wat aangebied word deur F # 's MailboxProcessor stel ons in staat om draad-veilige komponente met 'n hoë-concurrency vereistes moeiteloos te bou. sonder die gebruik van slotte en offer instandhouding en kompleksiteit. Hierdie-agent-gebaseerde oplossings bied ook veel groter doeltreffendheid en latency terwyl loop op skaal. Inderdaad ons-agent gebaseer Stateful bediener vir ons MMORPG het 'n groot sukses en 'n groot koste saver dat ons in die proses van die rol dit uit oor al ons sosiale speletjies bewys! speel, agente, wolk, 'n groot data, scalability Die gebruik van F # vir kruis-platform mobiele ontwikkeling (Android, IOS) spaar ontwikkeling tyd Ons wou ons Android en IOS aansoeke te ontwikkel met behulp van soveel gedeel kode as moontlik. Ons het 'n reaktiewe argitektuur met behulp van F # akteurs (aka posbus verwerkers) om 'n baie robuuste multi-stelsel wat maklik draagbare tussen Android en IOS was bou. Ons F # akteurs (verdeeld oor IOS en Android) bloot Net IObservables wat omgekom het deur UI stelsels geskryf vir die inheemse platforms. Die verdeling van die stelsel op dié manier toegelaat vir toetsbare multi-kode wat moeilik is om te skryf in ander Net tale sou gewees het. IOS, Android, Xamarin, reaktiewe Vir 'n masjien leer wetenskaplike, spoed van eksperimentering is die kritieke faktor om te optimaliseer. Ek het die eerste prototipe van die kliek voorspelling stelsel wat gebruik word in Microsoft AdCenter in F # in 'n paar dae. Vir 'n masjien leer wetenskaplike, spoed van eksperimentering is die kritieke faktor om te optimaliseer. Samestelling is vinnig, maar die laai van groot hoeveelhede data in die geheue neem 'n lang tyd. Met F # 's repl, hoef jy net die data een keer te laai en jy kan dan kode en verken in die interaktiewe omgewing. In teenstelling met C # en C ++, is F # ontwerp vir hierdie modus van interaksie. Dit het die gemak van die gebruik van Matlab of Python, beide van wat ek op groot skaal gebruik het in die verlede. Een probleem met Matlab en Python is dat hulle nie sterk getik. Geen Stel-time tipe kontrole seer spoed van eksperimentering as gevolg van foute, 'n gebrek aan herbruikbaarheid, hoë koste van refactoring, geen IntelliSense, en stadig uitvoering. Skakel oor na F # was bevrydend en opwindend. 2 voorbehoude: Nie elke probleem pas dat model. Met 'n bietjie van dissipline, soos die voorkoms van massiewe parallelisme vir so lank as moontlik, die model gaan 'n lang pad. Die tweede nadeel is dat die koste van die leer F # steil. Vir my was dit 2 weke afgeneem produktiwiteit. Dit het bewys 'n waardevolle belegging. As 'n masjien leer praktisyn ontwikkeling in F # Ek skakel voortdurend tussen twee aktiwiteite: 1) skryf prototipe-kode (hoogs interaktiewe lelike kode met weggooi resultate, funksies, en visualisaties) en 2) die opgradering van prototipe-kode vir biblioteek standaard (vinnig, generiese, herbruikbare). Toe ek teruggaan na skryf prototipes, ek bou op die top van die nuut opgegradeerde funksies. In F #, die koste van die skakel tussen hierdie twee vorme is minimaal: dikwels moet niks anders om te doen as die toevoeging van kommentaar en afgekeur funksies te verwyder. Dit beteken dat die meeste van die tyd word gewy aan eksperimenteer en die meerderheid van die kode is baie naby aan gestuur gehalte. Sommige mense kan dit doen in C # of Matlab, maar ek vind dat F # blink op dit. Ek het begin F # met diep agterdog met betrekking tot doeltreffendheid. My eerste toets was om te skakel F # met C ++ / CLI en kyk prestasie van 'n beroep SSE / Avx new kode. Soos verwag het nie, F #, is vergelykbaar met C # wanneer dit kom by bespoedig. Jy het dieselfde buigsaamheid om te skakel met 'n goed new kode. Die geïntegreerde generiese waarlik magiese: dieselfde IL in die verband DLLs, maar die funksies uit te brei om gespesialiseerde vinnige kode wanneer jy dit instansieer. Kompromieë tussen intuïtiewe kode en doeltreffende kode moet nog gedoen word. Ek het gevind dat "vir" lus "stert rekursiewe" lus, of Parallel. For met ThreadLocal loops, is vinniger as 'n opeenvolging van lopende IEnumerables (ev in F #). F # nie belemmer 'n mens se vermoë om lelik vas kode te skryf. Wees verseker. Verskeie mense in die masjien leer groep in Microsoft Research het oorgeskakel na F # vir die redes hierbo. Die wêreld is stadig beweeg na funksionele programmering met 'n goeie motivering: die kode is skoner en makliker om te ontfout in 'n verspreide omgewing. Onder die beskikbare funksionele tale, F # is 'n dwingende opsie. advertensies, masjienleer, data wetenskap, statistieke, predication Ons sien groot potensiaal vir F # om gebruik te word as 'n script taal in CAD; dit pas baie goed vir computational ontwerp uitdagings in die konstruksiebedryf. In onlangse jare baie Argitekte het ontdek dat hulle baie kan vergroot hul ontwerp repertoire deur die gebruik van parametriese ontwerp, ontwikkeling of script. Argitekte kan nou vinnig en maklik nuwe meetkundes voorheen onsigbare in argitektuur verken. Behalwe wat ontwerp in 'n nuwe manier hierdie geometrie kan ook presies voorgestel word en oor geredeneer in terme van strukturele haalbaarheid en vervaardiging beperkings. Hierdie feite neem nuwe geometrie uit die drome van Argitekte en maak hulle werklike kandidate vir die bou. Een so 'n projek is die Louvre Abu Dhabi deur Jean Nouvel. Waagner-Biro is bekroon met die konstruksie kontrak vir die Dome. Vir die bekleding van hierdie koepel meer as 450'000 individuele sny en boor patrone van persoonlike aluminium extrusions moes word beskryf en outomatiese. Die omvang en kompleksiteit van die bekleding van die koepel vereis dat ons herevalueer ons parametriese ontwerp benadering. Ek ontwikkel 'n F # aansoek om voor te stel en te organiseer al bekleding elemente van die koepel. Dit sluit in 'n klein meetkunde kern en 'n aangepaste weergawe van die helfte Edge Data struktuur die omgewing van elke element doeltreffend navraag. Ek gebruik Rhino en sy NET API om die F # DLL gasheer vir teken en visualisering. Hierdie aansoek in staat gestel om 'n geïntegreerde workflow van die belangrikste meetkunde lay-out al die pad af na die vervaardiging data in 'n enkele parametriese model het. Hierdie projek was die eerste gebruik van F # by Waagner-Biro vir 'n grootskaalse projek. Die oorskakeling na F # van dinamiese script tale gehelp om die ontwikkeling tyd en uitvoering tyd te verminder. Die sterk getik omgewing, algebraïese datatipes en onveranderlike data gehelp om 'n hele reeks van foute te vermy en pas goed die domein van die opwekking van statiese 3D meetkunde. Ek sien groot potensiaal vir F # om gebruik te word as 'script tale in CAD, veral aangesien die meeste groot CAD pakkette bied reeds 'n NET API. (Foto krediet: Jean Nouvel Argitekte) meetkunde, CAD, konstruksiebedryf, Rhino Die resultate spreek vanself. As 'n besigheid wat ons aktief soek verbetering elke dag. Dit is dieselfde vir ons IT-stelsels, so ons is op soek na 'n manier om dit te doen in ons in-huis sagteware stelsels. Die F # tipe stelsel het ons toegelaat om dit te doen - deur die uitskakeling van nul verwysings, die verhoging van tipe veiligheid en die skep van 'n ryk domein modelle wat ons help om uit te druk hard-en-vinnig besigheid reëls in 'n manier wat ons kan regtig maer op die samesteller; terwyl ons totale reëls van die kode eintlik verminder (en geraas!). Om hierdie rede is beide ons vereiste vir duur fout jag in ons produksie stelsels, en die totale koste van die instandhouding van onnodige kode kompleksiteit verminder. Ons is die evaluering van F # vir 'n jaar nou, en het komponente in ons produksie stelsels wat fout-vry gewees het sedert ontplooiing. Die resultate spreek vanself. kleinhandel, e-handel, ETL, web dienste, SOA, korrektheid ... Ons het besluit om te gebruik F # as ons funksionele taal outomatiese integrasie met die res van die stelsel het ... - EMEA gebaseer Security Solutions Company permalink Ons ontwikkel sekuriteit produk kritieke infrastruktuur (bv Olieraffinadery, lughawe, ens) te beskerm vir lande regoor die wêreld .... In die kern van ons produk is daar voorspelling algoritmes. Ons gebruik verskillende modelle en stellings (Monte Carlo, Aksie, ens) om die voorspelling komponente te implementeer. ... Aangesien ons herskryf ons volgende generasie produk met behulp van NET, het ons besluit om te gebruik F # funksionele taal outomatiese integrasie met die res van die stelsel het. ... Ons het ook gevorderde masjien leerkomponente (kunsmatige intelligensie) en funksionele tale is die beste geskik is om AI dinge skryf. Ons beplan om te gebruik F # as die primêre programmeertaal in hierdie gebied as gevolg van sy interoperabiliteit met NET. Met sy nuwe gereedskap, kan die bank spoed ontwikkeling met 50 persent of meer, die verbetering van gehalte, en koste te verminder. 'N Groot finansiële dienste maatskappy in Europa gesoek nuwe ontwikkeling gereedskap wat koste kan sny, te verhoog produktiwiteit, en die verbetering van die gehalte van sy wiskundige modelle. Om sy behoeftes aan te spreek, het die bank ontplooi F #, NET Framework, en Visual Studio. Dit sal binnekort op te gradeer om die Visual Studio 2010 en dan geïntegreer F #. Met sy nuwe gereedskap, kan die bank spoed ontwikkeling met 50 persent of meer, die verbetering van gehalte, en koste te verminder. F # moedig Rede Gedryf Ontwikkeling wat lei tot feitlik fout-vry-kode Ons gebruik F # omdat dit aansienlik spoed van die ontwikkeling van sagteware wat noodsaaklik is vir 'n klein maatskappy met beperkte hulpbronne ontwikkeling verhoog. Die lekkerste kenmerk van hierdie taal is dat die ontwikkelaar kan redeneer oor die kode in plaas van net te vertrou op eenheid toetse. Ek sou sê die taal moedig Rede Gedryf Ontwikkeling metodologie wat lei tot feitlik fout-vry-kode. F # so sterk getik funksionele taal ideaal pas vir take ons sagteware lost - Vaste Inkomste sekuriteite handel optimalisering. Dit is ook baie belangrik dat F # berekening enjin moeiteloos kan geïntegreer word met ander dele van NET-gebaseerde sagteware produk. vaste inkomste, handel, optimalisering, finansiële dienste Op 'n groot Beleggingsbank, ons gebruik F # om 'n vroeë waarskuwing aanwyser Stelsel vir likiditeitsrisiko te bou Vroeë Waarskuwing Aanduiders is 'n selfstandige paneelbord aansoek om real-time mark bewegings te monitor en na vore te bring potensiële risiko vir verdere analise. EWI ingeskryf is real-time aandele, Forex en kommoditeitspryse en wat nodig is om die Rooi / Amber / Groen status bereken in real-time vir verdraagsaamheid oortredings en om paneelbord verslae as dit nodig is op te wek. Die besigheid wou die buigsaamheid om formules met behulp van Excel uitdrukkings te omskryf, maar sigblad komponente kan nie byhou met die data-koers sonder samesmelting en bestuur wou nie 'n oplossing te vind wat staatgemaak op 'n Excel templaat en IT beheer om nuwe aanwysers voeg verander. F # is vir produktiwiteit ontwikkeling gekies, prestasie van 'n sel raamwerk geïmplementeer met behulp van berekening uitdrukkings; gemak waarmee Excel uitdrukkings kan ontleed word as 'n DSL en NET integrasie met QALib, mark en timer-reeks data. VERWANTE KWOTASIES MACD.

Comments