Nezlobte se, ale je naprosto zbytečné se překřikovat, když Vám (jak jste sám uvedl) není jasné, co znamená funkcionální programování. Zkuste se podívat na lambda kalkul, třeba Haskell (který se snaží být striktně funkcionální) atp. Nevykřikujte jen proto, že něčemu nerozumíte...
1. s nikým se nepřekřikuju, to by opravdu vypadalo jinak
2. řekněme, že mám nějaké zkušenosti s haskellem a prologem a teď se koukám na erlang, který se mi docela zalíbil. Ani lambda kalkulu se absolvent FI MU nevyhne.
3. do téměř jakéhokoli jazyka můžu zavést "funkcionální prvky", které funkcionální programování nějakým způsobem *připomínají*. I do céčka můžu zavést funkci map, která bude fungovat s callbacky. Takovou věc pak můžu používat tak, že to někomu bude *připomínat* funkcionální programování, zatímco někdo jiný řekne, že to žádné funkcionální programování není. Jak mám vědět, co JS bude považovat za dostatečně *podobné* funkcionálnímu programování, bavíme-li se *procedurálním* jazyku? (s Inkvizitorem byla řeč o pythonu)
--------------
Ale k věci - ptal jsem se Inkvizitora, jaké "funkcionální prvky" v pythonu používá a co mu to přineslo (protože já prostě nemám potřebu takové prvky v pythonu používat).
Například můžu napsat "funkcionálně":
result = reduce(lambda x, y: x+" "+y, ["a", "b", "c", "d", "e"])
nebo "procedurálně" něco ve stylu:
l = ["a", "b", "c", "d", "e"]
result = ""
for s in l[:-1]:
result += s+" "
result += l[-1]
(ošetření zvláštních případů pro stručnost vypouštím)
...přičemž oboje s velkou pravděpodobností překladač přeloží na úplně stejný nebo aspoň hodně podobný výsledný kód.
O tom, co je "elegantnější kód" se hádat rozhodně nebudu, protože to je věcí názoru.
Protože Inkvizitor je normální a dá se s ním mluvit, tak jsem se ho prostě ZEPTAL, jaký má důvod používat něco, co já nemám moc potřebu používat a Guido von Rossum zjevně taky ne. To je celé - žádná hádka.