1666
Vývoj / Re:Map vs. FlatMap
« kdy: 25. 09. 2016, 20:13:13 »
Nerad tě na to upozorňuji, ale zodpovídáš jenom otázku "umí se Kit chovat jako trolící nevychované hovado?", ne to, na co se tazatel ptal.
Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.
Ale houby, podívej se, co se stane, když má nějaký vstupní string lichý počet slov.
Tohle je flattening seznamu seznamů na prostý seznam.
Flattening se však dá udělat i nad slovníkem, resp. i dalšími kolekcemi. Například tato učebnicová funkce v Lispu vytváří z prostého seznamu dvojice klíč=>hodnota.Kód: [Vybrat](defun make-cd (title artist rating ripped)
(list :title title :artist artist :rating rating :ripped ripped))
Podobným způsobem se předávají např. volitelné parametry funkcí.
Flatteningem vznikne seznam se strukturou na druhém řádku, tedy na střídačku klíč a hodnota. Takový seznam se pak dá například vypsat:Kód: [Vybrat](format t "~{~a:~10t~a~%~}~%" cd)
Trochu tápu ve funkcionálním přístupu, jaký je pls rozdíl mezi map a flatMap?
Map je kolekcí dvojic (klíč, hodnota).
FlatMap je jednoduchý seznam, ve kterém se střídají klíče a jejich hodnoty.
Map je kolekcí dvojic (klíč, hodnota).
FlatMap je jednoduchý seznam, ve kterém se střídají klíče a jejich hodnoty.
Tak to vazne neni spravna odpoved v tomhle kontextu.
map vezme nejaky "kontejner" (ve skutecnosti neco obecnejsiho, ale tim se ted netrap), jako je List nebo Maybe, ve kterem jsou prvky typu T a na kazdy prvek aplikuje nejakou fuknci z T na K. Vysledek je ten samy druh kontejneru, ve kterem jsou prvky typu K.
flatMap na ten samy kontejner muze aplikovat funkci, ktera z prvku typu T udela kontejner prvku typu K. A vysledek se slepi opet do kontejneru typu K.
Popsal jsi totéž - pouze z jiného pohledu a mnohem složitěji.
flatMap je monada ;-)
map muze produkovat seznamy seznamu, pak je problem nacpat to do reduce. flatMap to vsechno vrati v jednom seznamu, kde vsechny objekty nejsou seznamy. krome toho je to monada v Haskellu, takze tim jde simulovat I/O a imperativni programco.
map -> [0,[1],[2,[3],[4]]]
flatMap -> [0,1,2,3,4]
Android mas na nejakej Acer smecko a divis se? porid si Google Nexus, ten dostava aktualizace primo od vyrobce=Google... budes mit odladenej system bez kravin navic a kazdej mesic bezpecnosti aktualizace...
WindowsMobile je pomalej system, co tu pomalost schovava za animace, neustale bys narazel na to ze chces nejakej program a ona je verze jen pro Andriod nebo iOS, navic to vubec neumi multitasking, takze i ta vyhoda co mel WindowsMobile <=6.5 padla...