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.
Tak to vazne neni spravna odpoved v tomhle kontextu.
Trochu tápu ve funkcionálním přístupu, jaký je pls rozdíl mezi map a flatMap?
Pseudokodem:
[1,2,3].map (*2)
[2,3,4]
["1", "21", "foo"].map (length)
[1,2,3]
Just(2).map(*2)
Just(4)
[1,2,3].flatMap (a -> [a, 2*a])
[1,2,2,4,4,3,6]
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.