Funkcionális programozás F#-ban

Slides:



Advertisements
Hasonló előadás
A sin függvény grafikonja
Advertisements

Zenetár a webszerverünkön, avagy XML használata PHP 5 alatt. Ercsey Balázs (laze) – netpeople.hu.
Programozás III KOLLEKCIÓK 2..
Algoritmus és programozás
Kifejezések 2+3 Egy egyszerű kifejezés… © Pasztuhov Dániel, www.programozas-oktatas.hu.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Készítette: Károlyi László április 4.Programozási nyelvek és paradigmák összehasonlítása 2. GY.
Az integrált áramkörök (IC-k) típusai
K id’s P rogramming L anguage V 1.1 Gödöny Péter  Veres Ádám  ELTE IK, Pataky Szakközép.
Programozási nyelvek.
Bevezetés a gépi tanulásba február 16.. Mesterséges Intelligencia „A számítógépes tudományok egy ága, amely az intelligens viselkedés automatizálásával.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 8. Gyakorlat Operator overloading II.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Függvények, mutatók Csernoch Mária.
Mutatók, tömbök, függvények
Java Típuskonverziók.
Informatika matematika speciális tagozat - tematika évfolyam -
Ruby nyelv. Története Yukihiro Matsumoto (szül ápr. 4.) alkotta meg, az ideális script nyelv hosszú eredménytelen keresése után. A lehetséges jelöltek.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
Porkoláb Zoltán, Kozsik Tamás, Zsók Viktória,
F# programozási nyelv Legfrissebb változat: 2.0 (.NET 4.0 szükséges hozzá) Hivatalos honlap: us/um/cambridge/projects/fsharp/
Vizuális és web programozás II.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Programozási nyelvek – Programozási paradigmák
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Bevezetés a C++ programozási nyelvbe
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
1 Bevezetés a funkcionális programozásba 2009.
Programozás Az adatokról C# -ban.
Funkcionális programozás 2. gyakorlat
Programozás. fordító (compiler): a program forrásszövegéből egy gépi kódú, futtatható programot (pl. EXE) állít elő, vagyis a programot lefordítja a gép.
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Adatkezelés Ez az előadó neve beosztása vállalata.
Optimalizálás Ez az előadó neve beosztása vállalata.
Az ASP.NET programozási modell Ez az előadó neve beosztása vállalata.
Programozási nyelvek Páll Boglárka.
Az F# programozási nyelv
Objektum orientált programozás a gyakorlatban
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
Készítette: Csíki Gyula
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Scala KOVÁCS VINCENT. Gyűjtemények – Collections  Scala több féle gyűjteménnyel rendelkezik:  Listák (Lists)  Halmazok (Sets)  Maps  Tuple  A gyűjtemények.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 4. Gyakorlat Függvény paraméterek, dinamikus.
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
CUDA C/C++ programozás Egyéb eszköztárak vegyesen A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt.
Power Lutár Patrícia Pellek Krisztián.  -ltLess than  -leLess than or equal to  -gtGreater than  -geGreater than or equal to  -eqEqual to  -neNot.
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
C Programozási alapok.
Szerver oldali programozás
Galéria Turóczy Attila (MCT, MCP, MCTS) Livesoft Kft.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Lekérdezések feldolgozása és optimalizálása. Haladó adatbázisokLekérdezések feldolgozása és optimalizálása2 Definíciók Lekérdezés feldolgozása –lekérdezés.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
Alkalmazásfejlesztés F#-ban Dunaújvárosi Főiskola Kiss Gyula mérnökinformatikus hallgató Nemzeti Tehetség Program Tehetségútlevél Program „NTP-TÚP ”
Programozási nyelvek csoportosítása.
Script nyelvek előadás
A Scala programozási nyelv
Kifejezések C#-ban.
Programozási nyelvek típusossága.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Változók.
World map.
Előadás másolata:

Funkcionális programozás F#-ban Gránicz Ádám Funkcionális programozás F#-ban

Funkcionális Programozás Imperatív vs Funkcionális Állapotváltozások sorozata egymásba ágyazott függvények alkalmazása változok nélkül Néhány fontos FP elem: első osztályú függvények, magasabb-szintű függvények, rekurzió mint flow control, closure-ok, mohó és lusta kiértékelés, polimorfizmus, típus inferencia, totális adatstrukturák, pattern matching, stb.

F# Funkcionális és objektum-orientált Erősen tipizált, kiváló és gyors kód .NET alatt a legkiforrottabb FP nyelv, teljes VS integrációval Interoperabilitás más .NET nyelvekkel Szimbolikus szkriptezés és programozás

Első osztályú függvények A legfontosabb alkotóelem: a függvények „értékek”, csakúgy mint a számok, stringek, stb.  Tehát ki lehet őket számítani Anoním függvény: fun x -> x+1 fun x y -> x+y

Magasabb-szintű függvények Olyan függvények amik más függvényeket várnak mint parameter let f g x = g (g x) let double x = x+x f double 1  4 List.map double [1; 2; 3]  [1; 4; 6]

LINQ [ … LINQ ... ]

Closure-ok let d f = let dx = 0.00001 fun x -> (f(x+dx)–(f x))/dx d (fun x->x*x*x) 10.0  300.00003

Polimorfizmus és típus inferencia Nincs szükség típus annotációra A fordító „megtalálja” a legáltalánosabb típust let id x = x val id: ‘a->‘a // polimorfikus függvény val d:(float->float)->float-> float

Diszkriminált uniók / Pattern Matching [ … kifejezés kiértékelő ... ]

DSL implementáció [ … IntelliLOGO ... ]

F# Demók [Game of life, 3D vizualizáció, Deriválás]

Könyv Expert F# Don Syme, Adam Granicz, Antonio Cisternino http://www.amazon.com/Expert-F-Don-Syme/dp/1590598504

Kérdések? Több információ itt: http://www.intellifactory.com