5 Funkční programovací jazyky, které byste měli znát

  • Owen Little
  • 0
  • 807
  • 199
reklama

Pokud trávíte nějaký čas čtením programovacích trendů na internetu, už jste slyšeli o funkčním programování. Termín je hozen docela často, ale co to znamená?

I když víte, jaké funkční programování je, možná si nejste jisti, jaké jazyky jsou pro něj nejvhodnější. Koneckonců, ne všechny programovací jazyky jsou vytvořeny rovnocenné. I když můžete aplikovat paradigmata funkčního programování v mnoha jazycích, stále existují některé, kde se budete cítit mnohem pohodlněji.

Co je funkční programování?

Pokud máte znalosti z matematiky, máte náskok ve funkčním programování. Je to proto, že funkční programovací paradigma zachází s výpočtem jako s matematickými funkcemi. Pokud nemáte matematické pozadí, mohlo by se to cítit zmatené.

Funkční programování v podstatě považuje funkce a data za neměnné. Předáváte data do funkce a obvykle vrací ta transformovaná data nebo nějaký jiný typ dat. Ve funkčním programování by funkce neměla nikdy měnit původní data nebo stav programu.

Existuje filozofie Unixu, že každý program by měl dělat jednu věc dobře. Funkce by se neměla dotýkat různých částí vašeho programu. Místo toho by měl vzít jeho vstup a dát vám výstup.

V ideálním případě by funkce měly být ve funkčním programování čisté. To znamená, že při stejném vstupu zůstane výstup funkce vždy stejný.

Funkční vs. objektově orientované programování

Je to dramatický odklon od něčeho, jako je objektově orientované programování. V objektově orientovaném programování máte často základní objekt s různými metodami určenými ke změně buď dat nebo stavu, které jsou součástí tohoto objektu. Metoda může dokonce změnit data nebo stav, pokud není výslovně uvedeno.

V praktických programech to někdy dává smysl. To však může ztěžovat údržbu programů, protože není vždy jasné, co mění stav nebo data. Funkční programování bylo původně používáno v akademických prostředích, ale může také pomoci zabránit těmto druhům problémů.

1. JavaScript

Některé programovací jazyky umožňují funkční programování, zatímco jiné jej podporují nebo dokonce vynucují. JavaScript spadá do první kategorie. I když můžete používat funkční programovací paradigmata v jazyce, můžete stejně snadno použít objektově orientovaný přístup.

To znamená, že do JavaScriptu je zabudováno spousta funkčních programovacích paradigmat. Vezměte například funkce vyššího řádu. Jsou to funkce, které mohou brát jako argumenty další funkce.

JavaScript má několik funkcí, které pracují s poli jako mapa(), snížit(), filtr(), a další, z nichž všechny jsou funkcemi vyššího řádu. To vám umožní spojit je dohromady, abyste rychle dělali všechny možné věci pomocí pole.

Zatímco časný JavaScript měl nějaké problémy s mutabilitou, novější verze standardu ECMAScript poskytují opravy. Namísto úlovků var klíčové slovo pro definování proměnných, nyní máte konst a nechat. První umožňuje definovat konstanty, jak název napovídá. Druhý, nechat, omezuje rozsah proměnné na funkci, ve které je deklarována.

2. Python

Stejně jako JavaScript, Python je zobecněný jazyk, se kterým můžete používat libovolný počet programovacích paradigmat. Python může mít své nevýhody 4 důvody, proč Python není programovací jazyk pro vás 4 důvody, proč Python není programovací jazyk pro vás Programovací jazyk Python je nesmírně populární, ale zde je několik důvodů, proč byste se měli chtít Pythonu vyhnout . , ale funkční programování není jedním z nich. V úřední dokumentaci Pythonu je dokonce uveden úvod do funkčního programování.

Nejprve najdete mnoho stejných mapa(), filtr(), snížit(), a podobné funkce uvedené výše zabudované. Stejně jako u JavaScriptu se jedná o funkce vyššího řádu, protože jako argumenty berou další funkce. V Pythonu má funkční programování výhodu ve formě lambda klíčové slovo.

Výrazy lambda můžete použít několika způsoby. Jedním ze způsobů, jak jej použít, je zkratka pro jednoduché funkce. Když je přiřazena proměnná, můžete volat lambda výrazy přesně jako by to byla standardní funkce Pythonu. Skutečná výhoda výrazů lambda přichází, když je používáte jako anonymní funkce.

Anonymní funkce fungují také v JavaScriptu a dalších jazycích v tomto seznamu. Obzvláště se hodí, když se používají s funkcemi vyššího řádu, protože je můžete definovat na místě. Bez anonymních funkcí byste museli předdefinovat i jednoduché doplňky jako zakázkové funkce.

3. Uzavření

Na rozdíl od JavaScriptu a Pythonu nemusí být Clojure přesně jméno domácnosti, dokonce ani mezi programátory. Pokud nejste obeznámeni, Clojure je dialekt programovacího jazyka Lisp, který sahá až do konce padesátých let. To s sebou přináší velmi specifický způsob, jak dělat věci, které se stanou dokonalými pro funkční programování.

Stejně jako jiné Lisp dialekty, i Clojure považuje kód za data. To znamená, že kód se může efektivně změnit sám. Na rozdíl od jiných dialektů Lisp, Clojure běží na platformě Java a je kompilován do JVM bytecode. To znamená, že může pracovat s knihovnami Java, ať už byly napsány v Clojure nebo ne.

Na rozdíl od předchozích jazyků v tomto seznamu je Clojure funkčním programovacím jazykem od základů. To znamená, že obhajuje neměnitelnost, kdykoli je to možné, zejména v rámci datových struktur.

Clojure neočekává, že všechny programy budou matematicky “prokazatelné,” ale doporučuje používat čisté funkce všude, kde je to možné.

4. Elm

Jeden z novějších jazyků na tomto seznamu, Elm je ryze funkční jazyk původně navržený Evanem Czaplickim v roce 2012. Tento jazyk si získal popularitu mezi webovými vývojáři, konkrétně pro vytváření uživatelských rozhraní..

Na rozdíl od všech předchozích položek v tomto seznamu používá Elm statickou kontrolu typu. To pomáhá zajistit žádné výjimky za běhu, s chybami namísto toho při kompilaci. To znamená méně viditelné chyby pro uživatele, což je hlavní plus.

Kompilátor Elmu zacílí na HTML, CSS a JavaScript. Stejným způsobem, jakým můžete použít program Clojure k psaní programů, které běží na Java, můžete v Elmu psát aplikace, které používají knihovny JavaScript.

Jedním z hlavních rozdílů mezi Elm a jinými jazyky je, že nenajdete druhový filtr(), mapa(), a podobné funkce. Místo toho jsou definovány typem dat jako List.map nebo Dict.map.

5. Haskell

Haskell je další staticky typizovaný, čistě funkční jazyk. Na rozdíl od Elmu je Haskell už nějakou dobu kolem. První verze jazyka byla navržena v roce 1990. Poslední standard je Haskell 2010, zatímco další verze je plánována na rok 2020.

Jak jsme již prozkoumali, čistě funkční povaha Haskellu znamená, že funkce by neměla mít záměrně vedlejší účinky. Díky tomu je vhodný pro řešení skutečných problémů navzdory kořenům funkčního programování na akademické půdě.

Přes jeho nedostatek popularity hlavního proudu, Haskell byl zaměstnán v některých široce používaných projektech. Správce oken Xmonad je napsán zcela v Haskellu. Pandoc, který převádí různé typy značek do az jiných formátů, používá také jazyk.

Standardní mapa(), filtr(), snížit(), a další funkce vyššího řádu, které by vám měly umožnit převzít koncepty od JavaScriptu nebo Pythonu po Haskell. Pokud se chcete dozvědět více o jazyce, populární výchozí bod se dozvíte Haskell for Great Good.

Jste na programování nováčci?

Některé z výše uvedených termínů a jazyků se mohou zdát poněkud ezoterické, pokud ještě nejste zkušeným kodérem. To je dobré, protože vědět, co nevíte, je jedním z prvních kroků, jak se stát lepším studentem.

Některé z výše uvedených jazyků jsou pro začátečníky lepší než jiné. Podívejte se na náš seznam nejlepších programovacích jazyků pro začátečníky. 6 Nejjednodušší programovací jazyky pro začátečníky. 6 Nejjednodušší programovací jazyky pro začátečníky. Zde je prvních šest nejjednodušších programovacích jazyků pro začátečníky. . Všimněte si, že mezi těmito dvěma seznamy je nějaký přechod.




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.