Kiedy po raz pierwszy zacząłem patrzeć na Scalę, podobał mi się wygląd pojęć. Wydawało się, że są trochę podobne do pętli foreach, z których byłem przyzwyczajony w Javie 5, ale z ograniczeniami funkcjonalnymi i mnóstwem słodkiej sławy syntaktycznej.Zrozumienie Scali: ważna cecha czy cukier syntaktyczny?
Ale jak już wchłonął stylu Scala, uważam, że za każdym razem mogę używać For-comprension używam map
, flatMap
, filter
, reduce
i foreach
zamiast. Intencja kodu wydaje mi się w ten sposób bardziej przejrzysta, z mniejszymi potencjalnymi ukrytymi niespodziankami, a także z reguły krótszym kodem.
O ile mi wiadomo, do-zrozumienia zawsze są kompilowane w dół do tych metod, tak więc zastanawiam się: po co właściwie są? Czy brakuje mi jakiejś rewaloryzacji funkcjonalnej (nie byłby to pierwszy raz)? Czy do zrozumienia rozumie się coś, czego inne funkcje nie potrafią, a przynajmniej nie są bardziej niezgrabne? Czy świecą w konkretnym przypadku użycia? Czy to naprawdę tylko kwestia osobistego gustu?
To prawie duplikatem http://stackoverflow.com/questions/1052476/can-someone-explain-scalas-yield. To pytanie zastanawiało się, co to "zysk", ten zastanawia się, jaki jest jego cel. Odpowiedzi są mniej więcej takie same. –