Všichni kolem jsou debilové, ale s funkcemi víc argumentů tě počítat nenapadlo...
Já se k tomu náhodou přidávám. Pipe operátor ("|>"), který mívají funkcionální jazyky (např. F#, Elixir. Haskell má podobné "$") je neuvěřitelně návykový. Hlavně proto, že se kód čte zleva doprava a ne obráceně. Funkce více argumentů nejsou větší problém. Osobně jsem si na to hodně zvykl a přijde mi to daleko čitenější než haskellovské skládání využívající curryfikace (YMMV).
list = ["a", "b", "c", "d"]
list |> Enum.reverse() |> Enum.join("/")
# vysledek: "d/c/b/a"
versus
list = ["a", "b", "c", "d"]
Enum.join(Enum.reverse(list), "/")
# vysledek: "d/c/b/a"
(obojí Elixir)
Mne $ docela prirostl k srdci, ale vzdy jsem ho chapal jen jako mnohdy sikovnou pomucku a jsem rad, ze "default" je jinak.
Btw - ono je docela zajimave uvazovat o tom, ktere poradi je "vhodnejsi". S vnejsi aplikaci vlevo je zase nejvic po ruce "nejdulezitejsi" operace.
IMO pro čisté výrazy klasický zápis tak jak se učí na ZŠ a "podle pořadí vyhodnocení" pro výrazy s vedlejšíma účinkama
Zbytecna komplikace. V APL jazycich neexistuje precedence operatoru, coz masivne zjednodusuje jazyk. Napr.
5 * 4 + 3
Vyhodnoti zprava doleva (5 * (4 + (3))). Otazka jestli lepsi zprava doleva nebo naopak je podle me vec preference.
V APL je to zprava protoze dava smysl prirazovat do promennych zapsanych vlevo.
X: 5 * 4 + 3
Misto
3 + 4 * 5 as X
Tomuhke se rika 'konkatenativni' jazyk. Skladas programy vedle sebe. Muses upravovat precedenci zavorkama dle libosti.
Vice argumetu resis bezne v techto jazycich. V shellu, haskellu nebo forthu to neni problem. V jazyce na kterym pracuju ja se to resi tak ze kazda funkce ma prave dva argumenty. Levej a pravej. Jako scitani a nasobeni napr.
Vychozi precedence operatoru je pouze ucebni pomucka pro prvnacky aby je nematly zavorky.