Tím jsi jen potvrdil, co jsem napsal. Každý zápis se vešel na jeden řádek.

No ono to pak samozřejmě vyjde tak, že v tom Haskellu na ten jeden řádek narveš i tělo cyklu....pokud ti teda pomalu 3x delší délka nepřipadá "ukecaná" a bazíruješ na jednom řádku....
Tady ale nejde o to, jak napsat cyklus, ale o schopnostech programátora použít ho jen tam, kde je třeba. Když ho někdo vhodně skryje do céčkovského makra, tak to volání také může vypadat jednoduše, např:
forit(it, v) ...
Samozřejmě je lepší použít OOP, kde se taková iterace řeší pouze na jednom místě a není nutné makra používat.
Takže jako opearci "iteruj přes kolekci" budu někde abstrahovat do OOP? Vždyť už takhle je vidět, že novější C++ je o dost méně ukecané než to staré.... Ale dobře, potřebuješ setřídit nějakou kolekci podle 2 položek ve struktuře, jedna sestupně, jedna vzestupně. Implementuj v C++ nebo v Jave bez lambda funkcí, v C++ nebo v Javě s lambda funkcemi a porovnej délku. Pro inspiraci, tady je implementace v Haskellu:
data MyRecord = MyRecord { polozka1 :: Int, polozka2 :: Double }
setrid = sortBy (flip (comparing polozka1) <> comparing polozka2)
A teď se zkus zamyslet, jak bys implementoval, kdyby na vstupu byl seznam položek a směr třídění těchto položek a ty bys to podle toho měl setřídit....